我有一个带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
答案 0 :(得分:1)
某些VPS提供商以奇怪的方式计算内存限制。看看下面是什么描述:
http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Memory_Constrained_VPS_Systems
完全有帮助。
答案 1 :(得分:0)
那很容易。听起来像是时候升级你的vps或者缩减postgres / apache / etc的内存设置并获得最终的性能。