uwsgi 的推荐设置

Recommended settings for uwsgi

我有一个 mysql + django + uwsgi + nginx 应用程序,我最近遇到了 uwsgi 默认配置的一些问题所以我想重新配置它但我不知道推荐值是什么。

另一个问题是我找不到 uwsgi 使用的默认设置,这使得调试非常困难。

使用默认配置,站点在实际流量下速度太慢(太多请求卡在等待 uwsgi 套接字)。所以我使用了一些教程中的配置,它有 cpu-affinity=1processes=4 解决了这个问题。配置也有 limit-as=512,现在应用程序出现 MemoryErrors,所以我猜 512MB 是不够的。

我的问题是:

  1. 我如何知道推荐的设置是什么?我不需要它非常完美,只是为了以下降的方式处理流量并且不会因内存错误等而崩溃。具体来说,limit-as 的推荐值是我现在最需要的。

  2. uwsgi 设置的默认值是多少?

谢谢!

我们 运行 通常是非常小的应用程序...每分钟很少超过 2000 个请求。但无论如何,很难比较不同的应用程序。这就是我们在生产中使用的:

documentation

推荐
Haharakiri = 20 # respawn processes taking more than 20 seconds
limit-as = 256 # limit the project to 256 MB
max-requests = 5000 # respawn processes after serving 5000 requests
daemonize = /var/log/uwsgi/yourproject.log # background the process & log

uwsgi_conf.yml

processes: 4
threads: 4


# This part might be important too, that way you limit the log file to 200 MB and 
# rotate it once
log-maxsize : 200000000
log-backupname : /var/log/uwsgi/yourproject_backup.log

我们使用以下项目来部署和配置我们的 Django 应用程序。 (这里没有文档抱歉......只是在内部使用它)

https://github.com/iterativ/deployit/blob/ubuntu1604/deployit/fabrichelper/fabric_templates/uwsgi.yaml

如何判断是否配置正确...?由于它在很大程度上取决于您的应用程序,因此我建议使用一些监控工具,例如 newrelic.com 并对其进行分析。