php-fpm进程数配置

php-fpm.conf进程数配置优化

pm:pm表示使用哪种方式,有两个值可以选择,static(静态)或dynamic(动态)

pm为static时以下参数生效

pm.max_children:表示开启php-fpm进程数量

pm为dynamic时以下参数生效

pm.start_servers:动态方式下的其实php-fpm进程数量

pm.min_spare_servers:动态方式下的最小php-fpm进程数量

pm.max_spare_servers:动态方式下的最大php-fpm进程数量

 

对于内存较大的的服务器(比如8G以上)来说,指定静态pm的max_children更好一点,

因为这样不需要进行额外的进程数目控制,会提高效率

max_children的数量可以根据 内存/30M 得到,比如8G的内存可以设置为100,这样整个php-fpm耗费的内存就能控制在2G-3G

应为系统其他软件也会占用一定的内存,所以要考虑预留

 

对于内存较小的服务器,将pm设为动态更好

pm.max_spare_servers最大进程数的数量可以根据  内存/20M 得到,比如512M内存,根据计算设置为20,

pm.min_spare_servers最小进程的数量设定为5-10之间比较合适

pm.start_servers则可以是1/2(min+max)

 

设置每个子进程重生之前服务的请求数,如果设置为0,则一直接收请求

pm.max_requests=500

上述配置表示,当一个php-cgi进程处理的请求数累积到500个后,自动重启该进程

初始时,一般一个进程值占用2-3M内存

一般项目中php会用到第三方库,会存在一定的内存泄露问题,如果不定期重启php-cgi进程,势必造成内存使用量的不断增长

因此,php-fpm在管理进程的时候,对请求达到指定次数的php-cgi进程会进行重启,保证内存使用不增长。

正因如此,在高并发站点中,在进程重启过程中,会导致返回502错误。

 

解决办法,设定合适的max_requests,减少进程重启次数,提高性能。但也不能设定的过大。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值