无法在Popen命令上分配内存

时间:2012-03-27 22:55:16

标签: python django apache mod-wsgi popen

我有一个带Ubuntu 11.10 64bit的VPS服务器,有时当我执行subprocess.Popen命令时,我得到的错误太多了:

  

OSError:[Errno 12]无法分配内存

配置详情: 对于每个站点,我都有一个像这样的apache站点:http://pastebin.com/mcew79sH 还有一个设置和一个wsgi文件(都在同一个文件夹而不是项目上),如下所示:http://pastebin.com/hrrV4WTM

我将参数传递给Popen构造函数作为列表并使用close_fds = True,我也使用和stdin / stdout与PIPE进行通信以获取我需要阅读响应的那些。

最后,这是我在错误出现http://pastebin.com/FqXPHwhq

时得到的追溯

服务器正在为大约25个流量较小的站点提供服务(其中5个站点的日常使用量相当大)我的VPS RAM大小为1024MB,所有这些站点都执行PostgreSQL数据库。

当我们将网站从运行Ubuntu Server 10.10 32位的VPS迁移到11.10 64位时,所有这一切都开始了。

知道如何解决这个问题吗?

----编辑----

ps aux - > http://synsa.synsa.com/site_media/process.txt

2 个答案:

答案 0 :(得分:1)

某些VPS提供商以奇怪的方式计算内存限制。看看下面是什么描述:

http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Memory_Constrained_VPS_Systems

完全有帮助。

答案 1 :(得分:0)

那很容易。听起来像是时候升级你的vps或者缩减postgres / apache / etc的内存设置并获得最终的性能。