这两天发现打开网站比较慢,检查了一个服务器,奇怪的是服务器负载正常,CPU,内存,IO这些都是正常的,想了一下应该是php-fpm的问题了。 php-fpm有两个比较重要的参数:一个是:“max_children”,一个是“request_terminate_timeout”。 我这两个设置的值是“30”,一个是“900”,但是这两个值不是通用的,而是需要自己计算。 方法如下:

而max_children这个值有事怎么计算出来的呢?这个值原则上越大越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少,设置max_children也是需要根据服务器的性能来进行设置的,一般来说一台服务器正在情况下每一个php-cgi所耗费的内存在20M左右。

dynamic模式,子进程的数量是基于此动态设置的。 pm = dynamic

min_spare_servers 这个是php-fpm最小的空闲进程数,小于这个值会自动启动php-fpm进程

max_spare_servers 空闲php-fpm最大进程数,空闲进程大于这个值会自动杀死空闲的进程

ondemand模式,在进程空闲的情况下直接杀死该进程 pm = ondemand

max_requests即使说每个进程超过这个数目,就自动杀死,尽量设置大一点,不过不要设置过大,我这里设置512。