在运行 django/tastypie 的 Apache 中,随着时间的推移,我的内存逐渐增加。流量确实增加了,但我预计内存会随着时间的推移逐渐减少。
<IfModule mpm_worker_module>
StartServers 6
MinSpareThreads 12
MaxSpareThreads 24
ThreadLimit 48
ThreadsPerChild 24
MaxClients 24
MaxRequestsPerChild 0
MaxMemFree 1024
</IfModule>
守护进程:
WSGIDaemonProcess www.domain.com processes=24 threads=24
New Relic 的报告
我的想法有问题吗?如果内存最终稳定下来并变为线性,我真的不在乎内存是否会随着时间的推移而释放,只要它永远不会超过某个阈值即可。我有两台负载平衡机器,它们都具有相同的设置并执行相同的操作。
除此之外一切都运行良好,而且速度超快。
谢谢, 标记
最佳答案
一天的运行时请求数量很少,因此很难判断您是否正在泄漏内存。对我来说,你的图表看起来很合理,但有很多变数,所以很难确定。
如果您担心泄漏,可以尝试使用 maximum-requests
WSGIDaemonProcess 选项,用于在处理那么多请求后重新启动进程。
还有,你真的需要24个WSGI进程吗?每个都有自己的 python 解释器,因此随着时间的推移将消耗 24 * (1 python/django/tastypie 堆栈)。我建议进行负载测试并相应地减少进程数。另请查看 this post来自格雷厄姆·邓普尔顿。
关于python - 随着 python/django/tastypie 的使用,apache 内存逐渐增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18133122/