目前在做一个有练换换的小程序,钱咖app会倒流进来,目前最大日活已经在22万+了,日常日活都在15万+。每天产生的pv数都在1000万+。 针对php-fpm进程模型,我们做了配置优化。

主要是将默认的动态form模型 改为了 静态固定进程数模型,减少进程fork的开销,从而降低cpu使用率。

进程管理有动态和静态之分。动态模式一般先启动少量进程,再按照请求数的多少实时调整进程数。如此的优点很明显:节省资源;当然它的缺点也很明显:一旦出现高并发请求,系统将不得不忙着 FORK 新进程,必然会影响性能。相对应的,静态模式一次性 FORK 足量的进程,之后不管请求量如何均保持不变。和动态模式相比,静态模式虽然消耗了更多的资源,但是面对高并发请求,它不需要执行高昂的 FORK。

经过测试,我们都是4核8g的服务器,一台服务器能承受的并发数在400, 进程数开启固定128相对较好。下游php服务器搭建了8台(相当充足了)

修改配置如下

www.conf

 1[www]
 2user = xxxxx
 3group = nogroup
 4listen = 127.0.0.1:9000;
 5; listen = /run/php/php7.1-fpm.sock
 6; listen.owner = www-data
 7; listen.group = www-data
 8pm = static
 9pm.max_children = 128
10; pm.start_servers = 2
11; pm.min_spare_servers = 1
12; pm.max_spare_servers = 3
13chdir = /