uwsgi的推荐设置

时间:2017-06-16 13:56:08

标签: django nginx settings uwsgi production

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

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

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

我的问题是:

  1. 如何判断推荐的设置是什么?我并不需要它是超级完美的,只是以下降的方式处理流量而不是因内存错误等而崩溃。具体来说,limit-as的建议值是我现在最需要的。< / p>

  2. uwsgi设置的默认值是什么?

  3. 谢谢!

1 个答案:

答案 0 :(得分:5)

我们通常运行非常小的应用程序......每分钟很少超过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并进行分析。