如何对apache/nginx设置进行基准测试

Sai*_*han 8 apache benchmarking nginx

我打算将nginx设置为反向代理.我将使用apache来提供动态内容,nginx将提供静态内容.

我现在的配置只是带有fastCGI的Apache.这给了我没有配置问题,并且运行良好.

在我设置nginx后,我想运行一些基准测试,看看我是否真的有一些性能提升,否则我会切换回来.

有谁知道如何对这种类型的设置进行基准测试?或者也许某人已经这样做并且有一些预制结果,我很乐意听到他们.

PS. 我知道这更像是一个服务器故障类型的问题,但我看过很多关于apache和nginx的帖子所以我想我试一试

Jon*_* L. 16

好的解决方案 围攻.

比ab更准确的基准测试工具


cli*_*lls 8

一些东西:

  1. 不要用ab.它是单线程的,您可能最终会对ab而不是HTTP服务器进行基准测试.

  2. 不要在与服务器相同的系统上运行您使用的任何压力工具.HTTP服务器将与CPU和其他资源的工具竞争.再加上localhost理想化版本的网络并不能说明整体情况(见第4点).

  3. 在测试期间注意内存和CPU利用率.很多人从不考虑这个因素.即使两个设置都表现相同,如果使用一小部分RAM/CPU,那么你就有了胜利者.

  4. RPS不是唯一有意义的指标.像慢客户端(3G智能手机,拥挤网络,慢速PC)这样的东西会对线程服务器产生明显的负面影响.理想化的实验室设置(localhost或隔离开关)不会反映这一点.

  5. 您的FCGI脚本将成为任一服务器的瓶颈.我建议使用一个可以提取多个资源的工具(理想情况是整个页面,包括静态内容),这样您就可以全面了解页面加载时间.

您可以考虑使用"基于云"的测试工具之一,例如browsermob.com或loadimpact.com.


Jav*_*ier 7

一个字:ab

  • ab -k -n 10000 -c 50 http://url.to/test这可以测试前端/静态页面或passthroughs到动态内容的apache.另一种可能性是http://www.acme.com/software/http_load/,它允许您指定要测试的URL列表.ab是实用性有限的基准,但是,你至少可以从中得到一些一般性的想法. (2认同)