我的apache进程之一是巨大的 – 我怎么知道为什么?

我使用mod_wsgi运行Apache 2.2.12,托pipe一个Django站点。 大多数apachesubprocess的权重大约是125MB的RSS,但偶尔我会看到一个subprocess的RSS大于1GB。

在这一点上,通常有一个巨大的进程(> 1GB),几个大的进程(> 500MB),其余的大概是125MB。 这些是mod_wsgi守护进程。

我已经尝试在Python中使用内存泄漏跟踪来查看它是否是Django代码,并且我看不到任何泄漏。 查看日志不会显示任何特别奇怪的请求。

我很难弄清楚是什么原因造成的 – 有什么想法? 此外,任何解决方法杀死大的Apache进程,当它变得太大,没有把Apache下来?

一些更多细节:

  • 不使用mod_php
  • 使用前叉

使用mod_status和ExtendedStatus On ,看看特定的PID在做什么。

pmap -x pidofprocess

你可以杀死一个Apache的孩子,但是,这不是一个很好的解决scheme。 你也用mod_php运行吗? MPM-prefork的?