OOM Killer Resolutions: Processes with High Risk of Memory Leak

Pay special attention to the processes in this group as to the most probable cause of your out-of-memory issues (sorted based on server role):

Load Balancers

Common recommendations

Allocate more RAM to a corresponding node - handled services could just require more memory for normal operability.

ProcessResolution
varnishdAllocate more RAM to a node - handled services could just require more memory for normal operability

Application Servers

Click on points within the list below to view some common recommendations on dealing with memory shortage issues considering used programming language, as well as appropriate resolutions for the most demanding related processes:

  • Java
  • PHP
  • Ruby
  • Python
  • NodeJS

Database Servers

Click on the required DB stack within the list below to reveal appropriate common recommendations on coping with OOM issues, as well as resolutions for particular killed processes:

  • MySQL
  • MongoDB
  • PostgreSQL
  • Redis

Common Processes for Different-Type Stacks

Common recommendations

Processes in this section can be run and, subsequently, killed within different node types. Thus, OOM resolutions for them vary and depend on a process itself - see the table below to find the appropriate recommendations.

ProcessStackResolution
httpdPHP
Ruby
Python
MySQL
MongoDB
PostgreSQL
1. Check the average amount of RAM, used by each httpd instance
2. Remove the Jelastic autoconfiguration mark within the /etc/httpd/httpd.conf file
3. Decrease ServerLimit and MaxClients values according to the formula: (Total_RAM - 5%) / Average_RAM
lsyncdPHP
NodeJS
Python
Allocate more RAM to a node - handled services could just require more memory for normal operability
httpd.itkPHP
Ruby
Python
1. Check the average amount of RAM, used by each httpd instance
2. Remove the Jelastic autoconfiguration mark within the /etc/httpd/httpd.conf file
3. Decrease ServerLimit and MaxClients values according to the formula: (Total_RAM - 5%) / Average_RAM
procmailAnyRestart container in order to restore the process
vsftpdAnyRestart container in order to restore the process
yumAnyRestart container in order to restore the process
cc13rd partyAllocate more RAM to a node - handled services could just require more memory for normal operability
clamd3rd partyAllocate more RAM to a node - handled services could just require more memory for normal operability
ffmpeg3rd partyAllocate more RAM to a node - handled services could just require more memory for normal operability
firefox3rd partyAllocate more RAM to a node - handled services could just require more memory for normal operability
newrelic-daemon3rd partyRestart the main stack service (nginx, tomcat, nodejs, etc)

What’s next?