【发布时间】:2010-11-25 21:54:26
【问题描述】:
我使用 web.py 编写了一个与 WSGI 兼容的 Web 应用程序,它在启动期间将几十 MB 数据加载到内存中。
它与 web.py 集成服务器配合得很好。
但是,使用 Apache 2 + mod_wsgi,每个请求都会重新加载数据,实质上是重新启动程序。由于加载时间为几秒钟,这是无法忍受的。
它是 mod_wsgi 固有的还是可以配置的?我的替代方案是什么?
【问题讨论】:
-
它是 mod_wsgi 固有的吗?不,它是 HTTP 固有的。您需要发布最少量的代码,以显示您认为“启动”如何工作。此外,您必须提供您的 mod_wsgi 配置,特别是显示您是否使用“守护程序”模式。
-
@S.Lott 感谢您提出守护程序模式——跨请求使用一个持久进程将服务器端数据保存在内存中。让它成为一个答案,我会接受。
-
是的,很可能您使用的是嵌入式模式,更糟糕的是 prefork MPM,这意味着请求可能会发送到许多进程,而应用程序需要大量加载到新进程中。如果您没有正确配置,请参阅“blog.dscpl.com.au/2009/03/…”讨论有关 prefork 和嵌入式模式的问题。
-
您实际上应该发布最少量的代码,以显示您认为“启动”如何工作。此外,您应该提供您的 mod_wsgi 配置。
标签: python apache mod-wsgi web.py