webhooks RUNNING pID 4403,uptime 4 days,19:47:01
如您所见,这项工作已经运行了4天.在我的错误日志中,我开始注意到出现以下错误:
error:02001018:system library:fopen:Too many open files
当我跑lsof | PHP看看哪些文件是打开的,我注意到有大量的文件打开了类型FIFO.这是输出专家:
COMMAND PID TID USER FD TYPE DEVICE SIZE/OFF NODE name PHP 4403 root 0r FIFO 0,8 0t0 9215811 pipePHP 4403 root 1w FIFO 0,8 0t0 9215812 pipePHP 4403 root 2w FIFO 0,8 0t0 9215812 pipePHP 4403 root 3w FIFO 0,8 0t0 9215812 pipePHP 4403 root 4w FIFO 0,8 0t0 9215812 pipePHP 4403 root 8r FIFO 0,8 0t0 9215811 pipePHP 4403 root 9r FIFO 0,8 0t0 9215811 pipePHP 4403 root 10r FIFO 0,8 0t0 9215811 pipePHP 4403 root 11r FIFO 0,8 0t0 9215811 pipePHP 4403 root 12r FIFO 0,8 0t0 9215811 pipePHP 4403 root 13r FIFO 0,8 0t0 9215811 pipePHP 4403 root 14r FIFO 0,8 0t0 9215811 pipePHP 4403 root 15r FIFO 0,8 0t0 9215811 pipePHP 4403 root 16r FIFO 0,8 0t0 9215811 pipePHP 4403 root 17r FIFO 0,8 0t0 9215811 pipePHP 4403 root 18r FIFO 0,8 0t0 9215811 pipePHP 4403 root 19r FIFO 0,8 0t0 9215811 pipePHP 4403 root 20r FIFO 0,8 0t0 9215811 pipePHP 4403 root 21r FIFO 0,8 0t0 9215811 pipePHP 4403 root 22r FIFO 0,8 0t0 9215811 pipePHP 4403 root 23r FIFO 0,8 0t0 9215811 pipePHP 4403 root 24r FIFO 0,8 0t0 9215811 pipePHP 4403 root 25r FIFO 0,8 0t0 9215811 pipePHP 4403 root 26r FIFO 0,8 0t0 9215811 pipePHP 4403 root 27r FIFO 0,8 0t0 9215811 pipePHP 4403 root 28r FIFO 0,8 0t0 9215811 pipePHP 4403 root 29r FIFO 0,8 0t0 9215811 pipePHP 4403 root 30r FIFO 0,8 0t0 9215811 pipePHP 4403 root 31r FIFO 0,8 0t0 9215811 pipePHP 4403 root 32r FIFO 0,8 0t0 9215811 pipePHP 4403 root 33r FIFO 0,8 0t0 9215811 pipePHP 4403 root 34r FIFO 0,8 0t0 9215811 pipePHP 4403 root 35r FIFO 0,8 0t0 9215811 pipePHP 4403 root 36r FIFO 0,8 0t0 9215811 pipe
这只是一个摘录.实际上有大约1200个这些FIFO文件打开.
有谁知道导致文件创建的原因是什么?什么类型的代码会导致系统打开新的FIFO文件?这些文件用于什么?
我最终增加了我的系统上的文件打开限制,这似乎解决了问题.主管文件说:supervisord uses file descriptors liberally,and will enter a failure
mode when one cannot be obtained from the OS
在将文件打开限制增加到10,000之后,我已经停止看到错误.我会定期检查打开的FIFO文件的数量,有时它会非常高(数千),而其他时候则低得多(数百).所以看起来主管不断打开和关闭这些文件,我只需要确保系统允许主管有足够的空间来完成它的工作.
如果有人想知道,我通过在/etc/security/limits.conf的底部添加以下两行来增加文件限制.
root soft nofile 10000root hard nofile 10000
在新限制生效之前,我不得不重新启动主管以及登录和退出系统几次,但最终还是有效.
总结以上是内存溢出为你收集整理的php – Laravel队列与supervisord打开太多的FIFO文件全部内容,希望文章能够帮你解决php – Laravel队列与supervisord打开太多的FIFO文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)