注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天朝布衣田中码农参上

苦逼码农的点点滴滴,请多多指教!

 
 
 

日志

 
 
 
 

php-fpm重要配置参数及调优  

2017-01-14 09:47:38|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
项目有需要,终于开始使用了nginx+php-fpm,发现php-fpm有些参数还是蛮重要的,配置得不好,事倍功半,于是略记下,有备无患。

emergency_restart_threshold = 60
emergency_restart_interval = 60s
#在interval所设值内出现SIGSEGV或者SIGBUS错误的php-cgi进程数如果超过threshold个,就会优雅重启。

以上配置两个选项一般保持默认值。

listen.allowed_clients = 127.0.0.1
#允许访问FastCGI进程的IP,设置any为不限制IP。

默认值是any,多个地址用逗号分隔。为了安全起见,最好设置成只允许本机访问。

pm = dynamic #对于专用服务器,也可以设置为static。
pm.max_children #子进程最大数,为static时起作用,下面三个参数为dynamic时起作用
pm.start_servers #启动时的进程数
pm.min_spare_servers #保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程
pm.max_spare_servers #保证空闲进程数最大值,如果空闲进程大于此值,此进行清理

pm分为动态【dynamic】,静态【static】两种,一般情况下设置为动态会性能好些,当然相关pm的参数要设置合适。

pm.max_requests = 1000
#每个子进程重生之前服务的请求数,如果设置为 '0' 则一直接受请求。默认值为0。

这个参数用默认值并不是很好,1000是个比较合适的值,但是如果在高并发的站点中,经常导致 502 错误的时候,可以设置得非常大(204800)会比较好点。

request_terminate_timeout = 0
#单个请求的超时中止时间,设置为 '0' 表示 'Off'.当经常出现502错误时可以尝试更改此选项。

这个参数解决经常出现502错误时比较有用。

request_slowlog_timeout = 10s
#当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中. 设置为 '0' 表示 'Off'
slowlog = log/$pool.log.slow
#慢请求的记录日志,配合request_slowlog_timeout使用

这两个参数在调试程序时非常有用,根据日志中提示信息再排查问题就有很明确的方向了

rlimit_files = 1024
#设置文件打开描述符的rlimit限制. 默认值: 系统定义值默认可打开句柄是1024。
rlimit_core = 0
#设置核心rlimit最大限制值. 可用值: 'unlimited' 、0或者正整数. 默认值: 系统定义值.

允许打开的文件数量,这个可以在shell中使用ulimit -n查看。系统默认值是有点小,需要根据情况来调整。

request_terminate_timeout = 120
#表示等待120秒后,结束那些没有自动结束的php脚本,以释放占用的资源。

当PHP运行在php-fpm模式下,php.ini配置的max_execute_time是无效的,需要在php-fpm.conf中配置另外一个配置项:request_terminate_timeout。


  评论这张
 
阅读(0)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018