我有一些HTTP请求导致一些大量内存使用(运行带有mod-wsgi的Python Django应用程序)。 我的问题是这些过程似乎闲置了一段时间。
有没有办法告诉apache杀死消耗X兆字节内存的空闲进程? 该请求已成功处理。
答案 0 :(得分:0)
目前还没有。您可以做的是将具有大量临时内存使用量的特定URL委托给单独的mod_wsgi守护进程组,该进程组上设置了非活动超时,以便在该URL的请求不频繁时,当该进程不用于而它将重新启动进程并回收内存。如果没有非活动时间足以触发不活动超时,则可以使用最大请求并根据请求数量每隔一段时间对其进行回收。
WSGIDaemonProcess main processes=3 threads=5
WSGIDaemonProcess memory-hungry-1 threads=5 inactivity-timeout=60
WSGIDaemonProcess memory-hungry-2 threads=5 maximum-requests=20
WSGIProcessGroup main
WSGIApplicationGroup %{GLOBAL}
</Location /memory/hungry/url-1>
WSGIProcessGroup memory-hungry-1
</Location>
</Location /memory/hungry/url-2>
WSGIProcessGroup memory-hungry-2
</Location>
换句话说,将WSGI应用程序垂直分区以跨多个守护程序进程组运行。这允许您以与应用程序的特定部分所需的方式匹配的方式自定义进程/线程和其他守护程序特定设置。