我在Openshift上部署了一个Python Web应用程序(使用WSGI)。该应用程序相当内存贪婪。我注意到的是,始终都部署了多个Apache httpd服务实例。这意味着我的设备的内存使用量乘以这些进程的数量,应用程序经常崩溃。

我的流量还不多,因此不需要运行多个httpd。

有什么方法可以配置Python卡式盒以将其限制为单个httpd进程?

最佳答案

如果您使用的是OpenShift Python盒式磁带及其默认设置,则其中只有两个进程实际上应在其中运行您的应用程序的副本。其他httpd进程是父监视器进程和Apache子工作进程,它们会将请求代理到实际运行Web应用程序的进程。

如果需要控制以将其简化为一个过程,则需要遵循以下步骤:


http://blog.dscpl.com.au/2015/01/using-alternative-wsgi-servers-with.html


覆盖标准设置并改为使用mod_wsgi-express。这将默认为您的应用程序使用一个进程,并允许您控制应用程序进程的进程数和线程数。

如果您看到大量内存使用,则可能只是您的应用程序代码,或者由于使用较旧的mod_wsgi而有外部机会看到内存问题,因为有些奇怪的情况可能会导致额外的内存使用,因为Apache的工作方式。如果您使用mod_wsgi-express,它将使用最新版本并避免这些问题。

因此,请尝试使用mod_wsgi-express,如果仍然存在内存问题,建议您进入mod_wsgi邮件列表以获取调试它的帮助。

关于python - Openshift Python多个httpd实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30958528/

10-14 18:18
查看更多