我有一个配置了 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 的结果。在基准测试期间没有使用太多内存或处理器。有人可以帮我有效地设置服务器吗?