我试图调试一个不断增长的内存大小的Apache进程。我在带有4GB RAM的虚拟Ubuntu主机上运行带有MPM Prefork的Apache 2.4.6,使用mod_wsgi为Django应用程序提供服务。该应用程序很重,AJAX调用和Apache每分钟300到1000个请求。这就是我所看到的:
我尝试设置MaxRequestsPerChild和MaxMemFree的低值,但似乎都没有任何效果。
这可能是什么,或者我如何进一步调试?事实上,我没有看到strace的输出,这使我的应用程序有一个无限循环。如果是这种情况,我怎样才能将PID追溯到它执行的代码路径或引发故障的请求?
答案 0 :(得分:0)
而不是重新启动Apache,停止并启动Apache。 Apache有一个已知的无修复内存泄漏问题。
另外,考虑使用nginx和gunicorn - 这个设置是一个轻量级,更快,通常被推荐的替代品,可以为您的django应用程序和静态文件提供服务。