有太服务器上挂了几个采集站,采集进程比较多,设置了 limits.conf和 sysctl.conf 值为102400,php日志还是提示标题所示内容。

fpm_stdio_prepare_pipes(), line 197: pipe() failed: Too many open files

解决办法

在Centos7系统中,使用Systemd替代了之前的SysV。/etc/security/limits.conf文件的配置作用域缩小了。/etc/security/limits.conf的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。因此登录用户的限制,通过/etc/security/limits.conf与/etc/security/limits.d下的文件设置即可。

对于systemd service的资源设置,则需修改全局配置,全局配置文件放在/etc/systemd/system.conf和/etc/systemd/user.conf,同时也会加载两个对应目录中的所有.conf文件/etc/systemd/system.conf.d/.conf和/etc/systemd/user.conf.d/.conf。system.conf是系统实例使用的,user.conf是用户实例使用的。

vim /etc/systemd/system.conf
DefaultLimitNOFILE=100000
DefaultLimitNPROC=65535

经上述修正之后,还是提示fpm_children_bury, 把102400后面再加一个0,至此php日志没有了。

我以前还写过一篇关于网站502和414错误的文章,可以参考:

网站出现502错误nginx 414 Request-URI Too Large解决方法

发表评论

评论前必须登录!

立即登录 注册