php-fpm优化总结
环境:php5.6.1
1.如何启用?
编译安装时加上--enable-fpm
2.如何优化?
优化之前根据业务需求规划,然后必须做压力测试;
优化的主要文件就是php-fpm.conf
(1)进程数设置
pm = dynamic
pm.max_children = 15
pm.start_servers = 5
pm.min_spare_servers = 5 //空闲时间最小的php-fpm进程
pm.max_spare_servers = 5 //空闲时间最大的php-fpm进程
(2)最大处理请求数
最大处理请求数是指一个php-fpm的worker进程在处理多少个请求后就终止掉,master进程会重新respawn新的。
该配置可以避免php解释器自身或程序引起的memory leaks。
默认值是500,
pm.max_requests = 1024
这样的规划,1秒钟
最大请求数:15*1024=15360
最小请求数:5*1024=7120
3.如何避免程序hang死?
方法1:设置php-fpm执行的超时时间为固定值
#vi php-fpm.conf
修改为request_terminate_timeout = 60
方法2:定时reload php-fpm
在负载较高的服务器上定时重载php-fpm
reload可以平滑重启而不影响生产系统的php脚本运行
每15分钟reload一次
0-59/15 * * * * /usr/local/php/sbin/php-fpm reload
本文只讨论了php-fpm的优化
下文有一个具体的优化案例,请参考进程数不够,引发日志报警
(。・v・。)
喜欢这篇文章吗?欢迎分享到你的微博、QQ群,并关注我们的微博,谢谢支持。