如何评估Web服务器的性能?

Zhu*_*Tao 5 django performance webserver nginx

我正计划部署一个django供电网站.但我对Web服务器的选择感到困惑,其中包括apache,lighttpd,nginx等.

我已经阅读了一些关于每种选择的性能的文章.但似乎没有人同意.所以我想知道为什么不自己测试性能?

我找不到有关性能测试Web服务器的最佳方法的信息.所以我的问题是:

  1. 没有生产现场,有没有简单的方法来测试性能?
  2. 或者我可以使用一种方法来模拟繁忙的交通以进行公平的测试吗?
  3. 如何保持我的测试公平并接近生产情况?

测试结束后,我想弄明白:

  1. 为什么有人说nginx在提供静态文件时性能更好.
  2. 每个Web服务器的CPU和内存需求.
  3. 我最好的选择.

squ*_*eks 3

像ab这样的工具通常用于测试一次可以从大量请求中承受多少负载,与 cacti/munin/您的系统监控工具或选择一起可以生成有关系统负载和请求/秒的数据。问题是许多人进行基准测试并没有意识到他们需要请求很多不同的请求,因为代码的不同部分执行将花费不同的时间。对代码而不是请求进行分析和基准测试也很重要,很多人已经为 django 这样做了benchrun也不是一个坏工具。

另一个问题是每个页面视图需要多少个 HTTP 请求。请求数量越少,处理速度越快,这是网站能够维持高流量的关键,因为您越快完成和关闭连接,您就越快为新请求分配资源。

就网络服务器的一般速度而言,不言而喻,代理服务器(在您的一端反向运行)始终比具有静态内容的网络服务器执行得更快。至于关于 django 应用程序的 Apache 与 nginx 的比较,似乎 mod_python 确实比 nginx/lighty + FastCGI 更快,但这并不奇怪,因为无论任何加速,CGI 仍然很慢。如果你做得正确的话,在网络服务器上执行和缓存代码并让它管理它总是更快(mod_perl 与使用 CGI、mod_php 与 CGI 等)。

  • nginx/lighty + wsgi 的问题比你想象的要深一些:http://blog.dscpl.com.au/2009/05/blocking-requests-and-nginx-version-of.html (2认同)