Log Error “fork: Cannot allocate memory”

Last updated: 2021-10-27 17:33:36

    Problem

    Log contains the error message “fork: Cannot allocate memory”.

    Cause

    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
      
      The default value of pid_max is 32768, as shown below:
    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