Php – How to limit PHP-FPM memory usage

memory usagePHPphp-fpm

I'm running an Ubuntu 10.04 nginx webserver with PHP-FPM. It has 512MB of total memory (256MB swap). After starting the PHP-FPM process (/etc/init.d/php5-fpm start), it uses an acceptable ~100MB for about 5 children. But then the processes suddenly balloon to using 400MB.

Here's a graph of my server's memory usage with PHP-FPM.

Here's my PHP process memory usage (ps aux | grep php)

I have set my PHP-FPM config conservatively: pm = static and pm.max_children = 5.
I'm only running a few WordPress blogs, and I don't get that many visitors.

How can I control the memory usage of PHP-FPM's processes so it doesn't eat up my server?

Best Answer

  • Disable any PHP extensions that you don't need.
  • Set a low max requests per child so each process is restarted more often.
  • Reduce the number of processes. You don't need many for a small blog. 2 should be fine.