tencent cloud

Feedback

Log Error “fork: Cannot allocate memory”

Last updated: 2022-07-12 10:27:27

    Error Description

    Log contains the error message "fork: Cannot allocate memory".

    Common Causes

    There are too many processes. If a new process is created after the pid_max value is reached, the error message "fork: Cannot allocate memory" will appear.

    Solution

    1. Check the memory utilization as instructed in Steps.
    2. Check the number of processes and modify the pid_max configuration.

    Steps

    1. Check the memory utilization as instructed in High Memory Utilization. If the memory utilization is normal, proceed to the next step.
    2. Run the following command to obtain the value of pid_max.
      sysctl -a | grep pid_max
      

    Perform corresponding operations according to the returned result:

    • If the returned result is as shown below, where the default value of pid_max is 32768, go to the next step.
    • If the error message "fork: Cannot allocate memory" is returned, run the following command to temporarily increase pid_max.
      echo 42768 > /proc/sys/kernel/pid_max
      

    Run the following command again to get the value of pid_max.
    3. Run the following command to view the total number of processes.

    pstree -p | wc -l
    

    When the total number of processes has reached pid_max, a new process will cause the "fork: Cannot allocate memory" error.

    Note

    You can use the ps -efL command to locate the programs for which many processes are running.

    4. Change the `kernel.pid_max` value in the `/etc/sysctl.conf` configuration file to `65535` to increase the number of processes. The result should be as follows:


    5. Run the following command for the configuration to take effect immediately.

    sysctl -p
    
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support