我已经使用 nginx + uwsgi 部署了我的 Django 应用程序。我还按照本文实现了微缓存并进行了其他更改 (Nginx 10k 并发连接数)。
现在我正在使用 jMeter 并测试 1000 个并发请求。以前,服务器在 70-80 个请求后会抛出 502,但现在它可以毫无失败地处理所有 1000 个请求。
问题在于:
- 平均响应时间为 18 秒。一开始是 1.9 秒,后来是 18 秒。
- 我正在使用 8 核服务器,服务器负载从未达到 20%。 负载测试期间的 htop 屏幕截图
- uwsgitop 显示 13 个 uwsgi 工作者保持处于空闲状态。只有 2-3 个工作者正在处理全部 1000 个请求。 负载测试期间的 uwsgihtop 屏幕截图
为什么 nginx/uwsgi 没有使用服务器的最大容量来处理请求。我怎样才能让服务器使用所有 uwsgi 工作程序,以便将响应时间从 18 秒缩短到 1-2 秒。