我正在使用 django + nginx + uwsgi 运行一个项目,我的 uwsgi.ini 文件配置如下:
socket = /tmp/uwsgi.sock
chmod-socket = 666
socket-timeout = 60
enable-threads = true
threads = 500
disable-logging=True
上面的配置还添加了harakiri=60但是无法释放内存 然后尝试添加 max-request = 100 和 max-worker-lifetime = 30 但内存未释放 之后尝试配置进程 = 4 和线程 = 2 但也无法释放内存使用量。 在分析我的 api 调用时,我发现了三个批量 api,它们不断增加内存使用并优化代码。尽管在代码优化并向 uwsgi.ini 文件中添加一些参数后,取消abke以释放内存。请帮我解决这个问题。
最佳答案
我在使用 Django + Uwsgi 应用程序时遇到了类似的问题,这是我的 uwsgi.ini 配置:
[uwsgi]
enable-threads = true
threads = 100
harakiri = 30
max-request = 50
- 多线程用于增加并发性(我使用过线程 因为它们比运行多个进程便宜)。
- Harakiri - 如果请求花费的时间超过指定的时间(以秒为单位),则请求将被丢弃,并且该工作线程将被回收。
- max-request - 这是重要的参数,将限制进程处理的请求
完成这些操作后,找出哪个请求导致数据库中的大量数据查询结果,并在可能的情况下对其进行优化。
让我知道这是否有效:),更多信息也将有助于找出更好的解决方案。
关于python - uwsgi内存消耗逐渐增加但消耗的内存没有释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58916538/