php-fpm 内存调优

为了高效利用服务器,今天特地把博客迁移到一台只有 1G 内存的新服务器上。原想一个静态博客而已,耗不了多大机器性能。不曾想,1G 的内存很快就不够用了,看了一下,连 swap 都被用上了。于是赶紧用命令查下各进程的内存开销:

$ ps aux

发现占据一大半内存的是一堆 php-fpm 相关的子进程。看来是 php-fpm 的配置不合理,导致它们被不合理地创建出来。这就要分析 php-fpm 创建子进程的方式了。

php-fpm 有三种孵化子进程的方式,一般可在 /etc/php-fpm.d/www.conf 里面,通过指定 pm 的值(例如,pm = dynamic),结合对应的参数(例如,pm.max_children = 50)来配置。这三种孵化方式分别是:

  • 静态 static
  • 动态 dynamic
  • 按需 ondemand

下面就分别来讨论这三种方式。

阅读余文php-fpm 内存调优