我的一个 Apache 进程非常庞大 - 我该如何找出原因?

我的一个 Apache 进程非常庞大 - 我该如何找出原因?

我正在运行带有 mod_wsgi 的 Apache 2.2.12,托管一个 Django 网站。大多数 apache 子进程的 RSS 大小约为 125MB,但偶尔我看到一个子进程的 RSS 大小会膨胀到 > 1GB。

此时通常有一个大型进程 (>1GB)、几个大型进程 (>500MB),其余进程仍然约为 125MB。这些是 mod_wsgi 守护进程。

我尝试使用 Python 中的内存泄漏跟踪来查看是否是 Django 代码的问题,但没有发现任何泄漏。查看日志没有发现任何特别奇怪的请求。

我不知道该如何找出导致这种情况的原因 - 有什么想法吗?此外,当大型 Apache 进程变得太大时,有没有什么解决方法可以终止它,而不会关闭 Apache?

更多细节:

  • 没有使用 mod_php
  • 使用预分叉

答案1

使用mod_status扩展状态开启看看该特定 PID 正在做什么。

答案2

pmap -x pidof进程

您可以杀死 Apache 子进程,但这不是一个很好的解决方案。您还运行 mod_php 吗?mpm-prefork?

相关内容