The other day we faced an issue with the memory and the exact error was can be described as below:
[Mon Sep 30 10:00:29 2013] [error] [client 220.127.116.11] (12)Cannot allocate memory: couldn’t create child process: /opt/suphp/sbin/suphp for /home/unier/public_html/index.php
[Mon Sep 30 10:00:29 2013] [error] [client 18.104.22.168] File does not exist: /home/unier/public_html/500.shtml
On the first look, we should check the Apache conf for any memory limits set in the Apache configuration file. You can check this using the below command
# grep RLimitMEM /usr/local/apache/conf/httpd.conf
If you are seeing any result like the below one, try disabling or removing the line in the httpd.conf file, and restarting Apache.
After that , if the issue is fixed then run the Apache distiller to preserve the change.
In My case, this was not due to the above limitation. This server had Cloudlinux installed and to fix I need to increase the memory limit for this user from LVE manager in WHM.
Server Configuration »
CloudLinux LVE Manager »
Click [Edit Settings For Specific LVE]
Enter the username and increase the memory limit and save.
As a permanent fix it is always good to track the plugin / component which is causing the heavy memory usage and tweak them with the help of a developer.