php-fpm服务维护实例以及参数说明

原文地址:https://blog.tanteng.me/2016/04/php-fpm-start-servers/


今天发了个链接,可能同时在线的人瞬间比较多,结果网站报503错误,回去打开php-fpm错误日志一看,php-fpm服务挂掉了,报如下错误:

[04-Apr-2016 15:38:04] NOTICE: systemd monitor interval set to 10000ms
[05-Apr-2016 19:03:08] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 0 idle, and 29 total children
[05-Apr-2016 19:03:09] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 0 idle, and 34 total children
[05-Apr-2016 19:03:11] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 39 total children
[05-Apr-2016 19:03:12] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 44 total children
[05-Apr-2016 19:03:13] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 0 idle, and 49 total children
[05-Apr-2016 19:03:14] WARNING: [pool www] server reached pm.max_children setting (50), consider raising it

错误提示建议增加pm.start_servers数量,打开我的php-fpm配置:

pm.max_children = 50

; The number of child processes created on startup.
; Note: Used only when pm is set to 'dynamic'
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2
pm.start_servers = 15

; The desired minimum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.min_spare_servers = 5

; The desired maximum number of idle server processes.
; Note: Used only when pm is set to 'dynamic'
; Note: Mandatory when pm is set to 'dynamic'
pm.max_spare_servers = 35

这里pm.start_servers之前我设置为5,注意配置文件也说明start_servers的值默认是max_spare_servers-min_spare_servers的一半。(ps:具体的值要根据服务器配置情况和压力测试得出)

网站服务器是阿里云1G带宽,1G内存,1核CPU配置,关键还在一台机子上装了数据库,redis各种服务。

几个php-fpm重要参数说明

pm.max_children = 24
static模式下创建的子进程数或dynamic模式下同一时刻允许最大的php-fpm子进程数量


pm.start_servers = 16
动态方式下的起始php-fpm进程数量


pm.min_spare_servers = 12
动态方式下服务器空闲时最小php-fpm进程数量


pm.max_spare_servers = 24
动态方式下服务器空闲时最大php-fpm进程数量

经验人士的总结:


一般php-fpm进程占用20~30m左右的内存就按30m算。如果单独跑php-fpm,动态方式起始值可设置物理内存Mem/30M,由于大家一般Nginx、MySQL都在一台机器上,于是预留一半给它们,即php-fpm进程数为$Mem/2/30。
 调整之后的几个值是:

Shell

pm = dynamic
pm.max_children = 50
pm.start_servers = 15
pm.min_spare_servers = 10
pm.max_spare_servers = 40
1
2
3
4
5
pm = dynamic
pm.max_children = 50
pm.start_servers = 15
pm.min_spare_servers = 10
pm.max_spare_servers = 40
重启php-fpm服务:service php70-php-fpm reload,继续使用top命令查看内存使用情况,发现十几个php-fpm启动。






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值