Apache 再次占用 100% CPU

Apache 再次占用 100% CPU

最近,apache2 开始使用 100% 的 CPU 能力: top给我CPU 使用率 100%

从其他类似的帖子中,我得到了使用 mod_status 的建议。除了大量的 NULL 请求外,它还提供:

CPU Usage: u2.16 s1.32 cu0 cs0 - .0835% CPU load
1.2 requests/sec - 17.6 kB/second - 14.6 kB/request
8 requests currently being processed, 42 idle workers

访问和错误日​​志没有显示任何令人惊讶或有趣的内容。

请注意 .8% 的 CPU 使用率。另一个技巧是使用strace

root@server:~# strace -p 1956
Process 1956 attached - interrupt to quit
restart_syscall(<... resuming interrupted call ...>

并且至少保持这种状态半小时,没有产生任何额外的输出。重新启动 apache 不到一秒钟就解决了这个问题。服务器在 apache2(最新版)上运行一些自定义 python 脚本以及由 django 驱动的网站,但即使关闭脚本(或首先不激活它们)也没有改变任何东西。在我停止 apache 并关闭服务器后,几分钟后将其打开并重新启动所有服务,CPU 使用率在几个小时内保持在低位,只是为了再次随机弹出(?)

我的服务器上的 DigitalOcean CPU 统计数据如下: DigitalOcean 统计数据 您可以看到 CPU 使用率持续了将近半天的时间,直到我重新启动机器人 - 只是保持稳定几个小时然后再次弹出。

我完全不知该说什么,不知道我该怎么做才能找出我的代码的哪一部分导致了这些问题,或者 Apache 本身是否是导致这些问题的原因......

因此,我将非常感激任何有关以下问题的提示:我还能尝试做什么?哪些事情我可能没有检查?这肯定是在我自己的代码中吗?如何找到 python 代码的哪一部分通过无限循环或类似方式导致应用程序崩溃?

相关内容