关于mod_wsgi守护进程重启的问题

1 投票
1 回答
2101 浏览
提问于 2025-04-16 15:08

我有一个使用mod_wsgi作为守护进程运行的wsgi应用程序(在守护进程模式下)。我的设置是每个守护进程在处理完1000个请求后会重启,具体配置如下:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines

WSGIDaemonProcess www.site.com threads=1 processes=4 maximum-requests=1000

这意味着每个守护进程的生命周期是处理1000个请求。

我的问题是:守护进程是什么时候重启的?是在完成上一个请求后立即重启,还是在下一个请求到来时重启?

编辑:修正了线程数的拼写错误。

1 个回答

3

在生产环境中使用“最大请求数”并不推荐,除非你的应用程序有严重的内存泄漏问题,而你又不想或者不能去修复它。

另外,触发最大请求数的标志是在请求开始时就设置的,这导致了请求计数达到了那个值。不过,这只是实现的细节,未来可能会有所改变。例如,在mod_wsgi 4.0版本中,这个情况就不那么简单,因为它引入了一种在特定情况下优雅重启的超时概念,这意味着在进程真正重启之前,可能会处理更多的请求。你知道这个为什么重要吗?

还有,你为什么要设置'threads=0'?你觉得这样会有什么结果?可能并不是你想的那样。

撰写回答