【问题标题】:php-fpm and dns not work well randomlyphp-fpm 和 dns 随机无法正常工作
【发布时间】:2018-11-11 05:30:04
【问题描述】:

有时我会收到错误消息:

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

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

在日志中我只看到一些:

警告:服务器达到 pm.max_children 设置 (8),考虑提高 它

但它工作正常。

【问题讨论】:

    标签: php linux dns


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多