连接失败:php_network_getaddresses:getaddrinfo失败:系统 错误
"System error"
部分真的让我失望。
我一直在与这个错误作斗争几个月,这是非常零星的。它似乎来自我的数据库连接器。
重启php-fpm
似乎可以缓解这个问题大约24小时,直到它再次开始行动。我原本以为它可能会使php-fpm
击中最大的孩子,但在检查php-fpm
状态后,它不是。
我尝试将错误与应用程序的syslog
和nginx
错误日志相关联,我的想法已经不多了。有关如何解决此问题的任何想法?
答案 0 :(得分:1)
所以,如果是其他人:
//在回收流程之前处理的请求数量
pm.max_requests = 500;
//作为空闲进程的最长时间
pm.process_idle_timeout = 10s;
答案 1 :(得分:0)
这个问题突然出现在我们身上,令人困惑,因为它与Redis的连接有关
我知道Redis不是问题所在,我觉得很奇怪我们得到了#34;系统错误"部分,正如你提到的那样
我快速挖掘了php-fpm源码,看看是什么引发了这个错误并发现它与DNS查找有关(显然) - 但如果我有' 127.0.0.1,为什么会出现问题?本地主机'在/ etc / hosts中?
在挖掘更多后,我发现它与文件描述符和连接不相关。
我会确保你的php-fpm孩子们正在优雅地死去,这样就可以回收连接了。我在/etc/sysctl.conf中也有net.ipv4.tcp_tw_recycle = 0,这似乎导致了问题。
简而言之,检查lsof以查看谁在占用文件描述符,如果你还没有增加它们,你可能会增加它们!