我正在运行带有 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?