首页 > 其他 > 详细

django+uwsgi+nginx数据表过大引起"out of memory for query result"

时间:2019-03-19 18:35:32      阅读:260      评论:0      收藏:0      [点我收藏+]

昨天负责的一个项目突然爆“out of memory for query result”。

背景

项目的数据表是保存超过10m的文本数据,通过json方式保存进postgres中,上传一个13m的大文件处理过程中出错。

怀疑

1 .celery进程过多

一开始怀疑celery进程过多导致的内存不足引起,查了一个有46个celery进程,
改为5个worker,状况没得到改善。

2.postgres work_mem过小

接着环境postgres的work_mem配置过小,默认是4m,改大后照样无效果。

3.django进程问题

重新用runserver 运行,上传大文件,通过,也就是无django无关

4.uwsgi配置

查了google,将limit-as改为2046无效果,改为9999无效果。

尝试

经过上述实践,已经找到问题的根源,就是uwsgi进程内存过大后报错了,所以换gunicorn这个python服务器替换。
用gunicorn替换uwsgi,上传后出现timeout,看来是默认超时时间过短,改为300s,再上传大文件,完美通过。



django+uwsgi+nginx数据表过大引起"out of memory for query result"

原文:https://www.cnblogs.com/ExMan/p/10560431.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!