话说性能测试

    其实很多人做性能测试的时候,使用的方法都很粗糙,很多因素都没有考虑,只是单纯的使用ab,就得出nginx比apache多多少多少倍等类似的结论,好笑。
    就拿nginx和apache比较而言吧,首先说一下nginx在linux工作于epoll模式,而apache默认是prefork工作模式,这个本来就没法比。但apache (MPM=event)工作模式就是采用epoll的机制,相同工作模式下比较才有意义啊。另一个一般web服务都支持pipeline(keep alive on/off)c传输模式,默认值各不相同,测试首先保证相同的传输模式(keep alive on 或 keep alive off)下进行啊,一股脑的测试,得出所谓的结论,能准确么?只能说经验过浅阿,另外,性能测试还受制于硬件环境/网络带宽/是否本机测试还是远程测试/测试内容/测试数据大小等等。


硬件环境不同,测试结论肯定不同,这个很简单。

网络带宽不同带来的影响,有些情况在100Mb/s下,1000Mb/s,TPS还是有很大差异的。

是否本机测试,直接对本机所谓的测试是不经过network,往往TPS会很高。

测试内容,动态/静态之间的差异我就不提了,静态内容一般是会被cache掉的,动态内容某个情况也会cache,TPS还是不算准确。

测试数据大小,这个一两句话说不清楚,如下图:(带宽/TPS/Object Size)关系,很有用的。


关于传输模式keep alive on/off的说明,我找到一片老外的测试结果。


引用

Tests were made on my desktop PC (Intel Core2 CPU 6700 @ 2.66GHz) inside VMWare environment (memory: 256 MB, Debian Etch) with apache-benchmark tool, fetching 32 B long static text file.

Compared versions (configuration files will follow soon):

Apache 1.3.34
Apache 2 (worker) 2.2.3
Litespeed 3.3.4
thttpd 2.23beta1-5
Nginx 0.5.35
Lighttpd 1.4.13
Cherokee 0.5.5
Boa 0.94.14rc21-0.2
Keep Alive On

Keep Alive Off


单说他的测试结果无论如何,至少,人家还知道Keep Alive On/Off的差异,分开比较。



你可能感兴趣的:(apache,vmware,nginx,Debian,lighttpd)