python flask mod_wsgi应用程序在具有高内存使用率的apache上崩溃

时间:2014-02-06 11:57:00

标签: python apache memory mod-wsgi

我有一个apache webserver,我使用mod_wsgi使用基于python的flask设置了一个网站。

我的应用程序崩溃时出现问题。 python脚本读入大量数据,并且在这个特定的机器上,需要交换(只有4GB RAM)以便处理它读入的数据,然后才能到达数据优化的点和代码将使用更少的内存(在此处理过程中,内存使用率峰值约为7GB,但我有一个8GB交换文件和4GB RAM),首次加载需要几分钟。当通过apache运行时应用程序崩溃,并且我没有获得太多信息,只要调试apache正在做什么以及为什么。以下是error.log中的所有内容

[Thu Feb 06 06:58:33 2014] [info] mod_wsgi (pid=29315): Starting process 'website' with uid=33, gid=33 and threads=1.
[Thu Feb 06 06:58:33 2014] [info] mod_wsgi (pid=29315): Initializing Python.
[Thu Feb 06 07:15:40 2014] [error] [client MASKED] Premature end of script headers: website.wsgi, referer: http://MASKED/
[Thu Feb 06 07:15:40 2014] [info] mod_wsgi (pid=29315): Process 'website' has died, restarting.

我能够使用flask内置的开发网络服务器测试应用程序,在代码完成处理数据后,它能够清理一些内存,并有足够的可用内存来运行(大约2.3GB的可用内存)初始处理完成后)。

如果使用的是更小的测试数据集,我可以使用apache运行应用程序。

我认为在未配置的apache中可能存在一些超时或内存限制,但我不确定这可能是什么。我试过设置

# Timeout: The number of seconds before receives and sends time out.
#
Timeout 3001

在apache2.conf文件中,但这似乎没有帮助。

我还在/ etc / apache2 / sites-available / default文件中的WSGIDaemonProcess下设置了processes = 1 threads = 1,以减少使用的内存量。

0 个答案:

没有答案