pm.max_children设置多大合适?

pm.max_children 表示 php-fpm 能启动的子进程的最大数量。

原则上是越大越好,php-cgi的进程多了就会处理的很快,排队的请求就会很少。

一台服务器正常情况下每一个php-cgi所耗费的内存在20M~30M左右

如果是2G内存

20M*50=1000M也就是说在峰值的时候所有PHP-CGI所耗内存在1000M以内 。
max_children 设置的较小,比如5-20个,那么php-cgi处理速度也很慢,等待的时间也较长,占用的CPU也很高。

如果长时间没有得到处理的请求就会出现 504 Gateway Time-out 这个错误,而正在处理的很累的那几个php-cgi如果遇到了问题就会出现 502 Bad gateway 这个错误。

max_children较好的设置方式根据req/s(吞吐率,单位时间里服务器处理的最大请求数,单位req/s)来设置,若程序是 100 req/s 的处理能力,那么就设置 100比较好,这是动态来调整的。

点赞

发表评论