php-fpm 和 dns 随机工作不正常

标签 php linux dns

有时我会收到错误信息:

stream_socket_client(): php_network_getaddresses: getaddrinfo failed: Name or service not known

我发现问题总是出在 php-fpm 上,因为在重新启动 php-fpm 服务后它再次运行良好。它在 1-3 个月内随机发生。或者在一个 php session 中多次使用名称解析函数时会发生这种情况。 我的服务器是 CentOS 7.5、Apache 2.4、PHP 7.x,已更新。 你知道应该是什么问题吗?

在日志中我只看到一些:

WARNING:server reached pm.max_children setting (8), consider raising it

但它工作正常。

最佳答案

PHP-FPM 会达到 max_children 的最常见原因是:

  • 来自您客户的大量并行请求
  • max_children 的设置非常低

但是,对于这种情况,我假设是由 max_children 的低设置引起的。所以请增加它。

$ sudo vi /etc/php-fpm.d/www.conf

您可以在 [php-fpm-pool-settings] 部分找到 pm.max_children

要了解 pm.max_children 使用什么,您可以使用此计算:

pm.max_children = 专用于 Web 服务器的总 RAM/Max child 进程大小。

请记住为您在系统上运行的额外服务留出一些 RAM。

另请记住,越高并不总是越好。如果您的 PHP 脚本不好,这些设置将无法解决您的问题。调整这些设置并查看最适合您的服务器的设置。进行更改后,您需要重新启动 PHP-FPM 服务。

$ sudo systemctl restart php-fpm

请查看this tutorial了解更多信息

关于php-fpm 和 dns 随机工作不正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50637215/

相关文章:

php - 不同文件夹中的文件具有相同的命名空间

c - linux,从不同的进程读/写同一个文件,读进程得到了一些意外的数据

apache - 无法识别一个网站如何重定向到另一个网站

linux - 如何让蓝牙在树莓派上工作

java - 如何在 Java 中实现自定义本地 DNS 服务?

amazon-web-services - AWS 为负载均衡器请求 ACM HTTPS 证书

javascript - 如何从 JSON 获取多个数据的 ajax 响应?

php - 如何创建具有 3 个不同系列类别名称的 Highcharts

php - SMTP:无法连接套接字:连接被拒绝

linux - 尝试使用几个简单的 dmidecode 命令运行 shell 脚本,在执行脚本时它会在每个文件的末尾添加 '?'