返回首页

张小三资源网
    站长必备网站 ╭∩╮(︶︿︶)╭∩╮!高性价比VPS推荐。
12月112013

nginx和php日志中出现的错误:fpm_children_make() fpm_got_signal() fpm_children_bury()

Posted by 张小三资源网 2013年12月11日 Tags:VPS教程

nginx php log error.jpg
引子:最近我的一个站搬家后,快照跟权重都出现了问题,已排除搬家的影响,最后观察了下PHP和nginx运行的日志,发现经常出现如下提示的一些错误有时也会出现lnmp nginx 502错误。

[NOTICE] fpm_children_make() 
fpm_got_signal() 
fpm_children_bury()
setrlimit(RLIMIT_NOFILE) failed

目前想到的解决方案:
命令ulimit -n 查看值为 65535 而php-fpm.conf 中的 rlimit_files 值为51200,运行命令:
vi /usr/local/php/etc/php-fpm.conf
修改rlimit_files值为65535

vi /usr/local/nginx/conf/nginx.conf
worker_processes值可以设置为auto它会自动检测可用内核
修改worker_rlimit_nofile和worker_connections值为65535

解析:worker_processes的值定义了nginx对外提供web服务时worder进程数,最优值取决于许多因素,包括(但不限于)CPU核的数量、存储数据的硬盘数量及负载模式。不能确定的时候,将其设置为可用的CPU内核数将是一个好的开始(设置为“auto”将尝试自动检测它)。

worker_rlimit_nofile 更改worker进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制。设置后你的操作系统和Nginx可以处理比“ulimit -n”更多的文件,所以把这个值设高,这样nginx就不会有“too many open files”问题了。

worker_connections设置可由一个worker进程同时打开的最大连接数。如果设置了上面提到worker_rlimit_nofile,我们可以将这个值设得很高。记住,最大客户数也由系统的可用socket连接数限制(~ 64K),所以设置不切实际的高没什么好处。

另外php-fpm.conf中max_children和max_requests之间需要一个平衡,max_requests控制着php-cgi进程的重启速度,最终内存问题成为目前的最大问题了。

举例说明:

value name="max_children">30
同时处理的并发请求数,即它将开启最多30个子线程来处理并发连接。

value name="rlimit_files">10240
最多打开文件数

value name="max_requests">10240
每个进程在重置之前能够执行的最多请求数。
老外vps无特别说明(即使用优惠码)都按优惠后的价格续费。此vps无爱可看之前其它文章
发现Out of Stock说明缺货中,可考虑购买其它VPS。自备谷歌浏览器有简单的翻译功能。

买老外的域名、vps都需美元。有信用卡可直接购买。无卡无美元的注册Paypal到淘宝找人充美元即可。老外VPS购买教程参考:http://www.zxsdw.com/index.php/archives/259/

仅有一条评论 »

  1. 收藏收藏

添加新评论 »

张小三资源网 is powered by Typecho))) 网站地图