压力测试 Django 应用程序-如何提高吞吐量?

压力测试 Django 应用程序-如何提高吞吐量?

我第一次尝试对一个由 gunicorn 和 nginx 运行的简单 django web 应用程序进行压力测试,我将其放在一个 256MB 的小型 Rackspace 云服务器上。

使用 httperf,我增加每秒的连接数,直到开始出现错误,例如

httperf --hog --server=localhost --uri=/myapp --timeout=10 --num-conns=2500 --rate=25

我发现,对于 django 的一个简单几乎静态的页面,在开始引发错误之前,我可以获得大约 35 个请求/秒。

对于需要数据库查找和更多处理的更动态的页面,我可以获得大约 25 个请求/秒。

最初我只使用 1 个 gunicorn 工作程序,但增加到 4 个工作程序(我认为我的云服务器有 4 个核心)似乎没有任何区别(它仍然开始抛出高于 25 req/sec 的错误)。

考虑到这是在如此小(256MB)的服务器上运行,这些结果听起来是否符合预期?

此外,我可以做哪些改变来提高吞吐量?

相关内容