我有一个mysql + django + uwsgi + nginx应用程序,我最近遇到了uwsgi默认配置的一些问题,所以我想重新配置它,但我不知道推荐值是什么。
另一个问题是我无法找到uwsgi使用的默认设置,这使调试变得非常困难。
使用默认配置,网站在实际流量下太慢(太多请求等待uwsgi套接字)。所以我使用了一些教程中的配置,它有cpu-affinity=1
和processes=4
来修复问题。配置也有limit-as=512
,现在应用程序获得MemoryErrors,所以我猜512MB是不够的。
我的问题是:
如何判断推荐的设置是什么?我并不需要它是超级完美的,只是以下降的方式处理流量而不是因内存错误等而崩溃。具体来说,limit-as
的建议值是我现在最需要的。< / p>
uwsgi设置的默认值是什么?
谢谢!
答案 0 :(得分:5)
我们通常运行非常小的应用程序......每分钟很少超过2000个请求。但无论如何,很难比较不同的应用程序。这就是我们在生产中使用的东西:
的推荐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应用程序。 (这里没有文件抱歉......只是在内部使用它)
如何正确配置?如何判断?由于它很大程度上取决于您的应用程序,我建议使用一些监控工具,如newrelic.com并进行分析。