【发布时间】:2020-06-14 19:38:20
【问题描述】:
我有一个配置了 nginx 和 uwsgi 的 Django 项目。该网站没有太多的cpu处理。主要是简单的阅读,但我们预计会有很多点击。我使用 apache 基准测试进行负载测试。提供一个简单的ab -n 200 -c 200 <url> 会使网站变慢(在基准测试进行时,即使从不同的 IP 地址也无法在任何浏览器中打开网站)。我将进程数设为 16,线程数设为 8。我的 uwsgi.ini 文件如下所示。
[uwsgi]
master = true
socket = /tmp/uwsgi.sock
chmod-socket = 666
chdir = <directory>
wsgi-file = <wsgi file path>
processes = 16
threads = 8
virtualenv = <virtualenv path>
vacuum = true
enable-threads = true
daemonize= <log path>
stats= /tmp/stats.sock
当我检查 uwsgitop 时,可以看到工人 7 和 8 正在处理大部分请求,其余的处理的请求数量比他们少。这可能是我在运行基准测试时无法在浏览器中加载网站的原因吗?我如何有效地使用 uwsgi 进程来服务最大数量的并发请求?
这是 htop 的结果。在基准测试期间没有使用太多内存或处理器。有人可以帮我有效地设置服务器吗?
【问题讨论】:
-
尝试将线程降低到
5。 -
关于它如何提供帮助的任何见解?实际上我已经禁用了线程并提高了速度。
-
你的 NGINX 配置是什么样的?您是否为
worker_processes设置了值?如果未设置,则默认值为 1,这意味着您可能期望 NGINX 使用 uwsgi 进程只使用它自己的一个进程...
标签: python django nginx uwsgi uwsgi-stats-server