【问题标题】:Apache2 process never ending - how do I determine why?Apache2 进程永无止境 - 我如何确定原因?
【发布时间】:2012-02-22 15:43:58
【问题描述】:

所以我只是设置了一个新的 VPS,一旦我打开它(MaxClients 设置为 140)就会达到 maxclients,并且 apache 进程在超时(15 秒)之前不会停止结束。

如何进一步调试以确定它们为什么没有结束?

不幸的是,它是一个生产机器,这就是为什么在 apache 重新启动后如此快地达到 maxclients 的原因。

我在 ubuntu 10.10、内核 2.6.18 和 PHP 5.3.3 上运行 Apache 2.2.16

MySQL 在单独的服务器上运行(注意:我有一种预感,可能由于与 MySQL 相关的某些原因,进程没有结束,但我不确定要查找什么)过去我有 MySQL/PHP在同一台服务器上,一切都很好,因为我已经搬到了 2 个单独的服务器上,所以我遇到了这个问题。

【问题讨论】:

    标签: php mysql apache2


    【解决方案1】:

    这在很大程度上取决于您的配置。如果你有 keep-alive 活动,那么进程等待是绝对合法的。

    告诉我们更多关于您的配置并检查(使用 netstat -np)哪些连接仍然处于活动状态。

    【讨论】:

    • 肯定是 MySQL,我不知道为什么 Apache 等待结束...我猜可能有些 PHP 代码永远不会关闭 MySQL 连接,然后它就挂起等待直到 KeepAlive 完成,然后 Apache 被杀死。奇怪的是在我的另一台主机上从来没有任何问题(相同的配置)。当我转移到一个专用的 MySQL 服务器时,这个问题就出现了。
    • 当我达到 140 个 MySQL 连接时,一切基本上都停止了,Apache 继续旋转。有人对如何调试有任何想法吗?
    【解决方案2】:

    Curl 在多个页面上被调用并且没有设置超时,所以它达到了最大执行时间。

    我已经修好了! strace -p 是救命稻草!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多