gpt4 book ai didi

django+uwsgi 巨大的内存使用问题

转载 作者:IT王子 更新时间:2023-10-28 23:35:07 26 4
gpt4 key购买 nike

我有一个基于 django+uwsgi 的网站。有些表有近 100 万行。

经过几次网站使用,uwsgi进程使用的VIRT内存达到了将近20GB...差点杀死我的服务器...

您能告诉我是什么原因导致了这个问题吗?我的表格行太大了吗? (不太可能。Pinterest 有更多的数据)。现在,我不得不使用 reload-on-as= 10024reload-on-rss= 4800 每隔几分钟就杀死 worker ......这很痛苦......有什么帮助吗?

这是我的 uwsgi.ini 文件

[uwsgi]

chdir           = xxx
module = xxx.wsgi
master = true
processes = 2
socket =127.0.0.1:8004
chmod-socket = 664
no-orphans = true
#limit-as=256
reload-on-as= 10024
reload-on-rss= 4800
max-requests=250
uid = www-data
gid = www-data
#chmod-socket = 777
chown-socket = www-data
# clear environment on exit
vacuum = true

最佳答案

在对堆栈流和谷歌搜索进行了一些挖掘之后,这里是解决方案。

然后我发现要在 uwsgi.ini 中设置的主要参数是 max_request。最初,我将其设置为 2000。现在将其设置为 50。所以当内存上升太多时它会重新生成 worker 。然后我尝试找出哪个请求导致数据库中的大量数据查询结果。我最终找到了这条小线:

  amount=sum(x.amount for x in Project.objects.all()) 

虽然 Project 表有超过 100 万个复杂条目。占用大量内存....自从我评论了这一点......现在一切都运行顺利。

所以最好了解[django 查询如何与数据库一起工作]

关于django+uwsgi 巨大的内存使用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22626115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com