Web服务器选型参考(Apache+Nginx+Lighttpd)之性能对比测试报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
总请求数为100000,分别启用500、1000、3000、5000、7000和10000并发进行测试;
3.测试版本:
Apache:2.2.14
Nginx:0.9.6
Lighttpd:1.4.28
测试结果
1.响应时间对比分析
1K以内小文本
从小的请求来看,可以得出以下结论:
a)在3000并发以上lighttpd的最大响应时间小于平均响应时间,估计在建立连接等方面占用的时间开销高于Apache和Nginx;
b)在5000并发以内,Nginx的性能明显优于Apache和Lighttpd两款Web服务器;
c)在5000并发以上,Apache的性能优于Nginx和Lighttpd两款应用服务器;
d)在7000并发以上,Nginx的并发性能下降的非常明显;
e)从上述请求来看,要想真的一个系统实现很高的并发性能,需要尽可能的减少请求的数量。
2.每秒请求数对比分析
从每秒请求数(Requests per second)对比图来看,可以得出以下结论:
a)从1K以内小文本来看,Apache的3000并发是分水岭,有理由相信:Apache的事件响应机制在3000并发的时候可能存在变化,3000以内继续以前的Select机制,3000以上改采用Poll的机制;
b)整体来看,5000点以内Nginx的性能最卓越,但是5000以上,Apache已经超越了Nginx的性能;
c)对于Lighttpd的中大型文本来说,每秒请求数基本恒定,个人分析与Lighttpd的mod_compress模块使用的Cache机制有关。
给前线建议
推荐项目中根据实际情况合理选择Web服务器。首先项目中选择Web服务器主要是从并发量和每秒请求数两个指标来分析,我的建议也是从这两方面来建议:
本次性能测试指标主要是从响应时间和每秒请求数作为对比参数,因为网卡吞吐量最大为1G,来回和接收大约在400M左右,从现有测试结果看,基本上都能满足需求。
测试方案
1.测试工具:
选择Apache自带的ab命令进行测试,典型的命令如下:
ab -n 100000 -c 500 -khttp://localhost:81/test-page-small.htm
1.从并发量来考虑:
目前公司实施人员在Apache方面实施经验最丰富,对于1000并发以内,可以考虑采用Apache作为项目的Web 服务器。
对于1000-5000之间的并发数量,请选择Nginx作为Web服务器。
单机5000以上的并发,实际上我们的图片、HTML等都不会是小型的文本,考虑页面的可用性,单机建议不予考虑5000以上的并发;
59K中大型文本
从大的请求来看,可以得出以下结论:
a)在5000并发以内,nginx的表现稍好于Apache和lighttpd;
b)在5000并发以上,lighttpd的并发优于Apache和Nginx
c)但整体而言,以这种单机在本机的测试结果来看,不管是哪种Web Server,在5000并发以上,单次请求的响应时间均超过了1s,已经不具有可用性。
2.从每秒请求数来考虑:
基本上每秒请求数和每秒PV值之间有一个10%的经典换算规律,所以项目根据经典以及每个产品的实际情况,可以从PV的角度演算出每秒请求数后再结合本次分析来制定Web服务器的选择方案。
每秒请求数6000以上,建议选择Nginx作为Web 服务器;
每秒请求数6000以内,可以考虑在Apache和Nginx之间做出选择;
由于Lighttpd主要是在fastCGI方面性能卓越,但实际上我们都是Java应用,另外1.5版本迟迟没有退出,建议任何时候都不要选择Lighttpd作为Web 服务器。
性能测试报告
主流Web服务器(W百度文库b Server)性能对比
目的
为了验证主流的Web服务器自身的性能,为今后的项目做参考,特进行本次性能对比测试。
本次性能对比测试在同一台物理主机上面进行测试,测试机器的网卡、Open Files等参数,各个Web服务器的参数均进行过优化。
物理主机的配置如下:
CPU 8核、内存4G的PC服务器、网卡1G
-n 指定总共请求数量
-c 同时并发的请求数
-k 客户端是否启用Keep Alive连接
2.测试方法:
在Linux本机用apache自带的ab工具进行测试。
为了保证客户端的端口性能,压力测试采用keep alive的模式和服务器进行通信.(不采用keep alive单机扛不住)
测试两种类型的静态文件:1K以下、59K的中大型静态HTML文件的请求。
3.测试版本:
Apache:2.2.14
Nginx:0.9.6
Lighttpd:1.4.28
测试结果
1.响应时间对比分析
1K以内小文本
从小的请求来看,可以得出以下结论:
a)在3000并发以上lighttpd的最大响应时间小于平均响应时间,估计在建立连接等方面占用的时间开销高于Apache和Nginx;
b)在5000并发以内,Nginx的性能明显优于Apache和Lighttpd两款Web服务器;
c)在5000并发以上,Apache的性能优于Nginx和Lighttpd两款应用服务器;
d)在7000并发以上,Nginx的并发性能下降的非常明显;
e)从上述请求来看,要想真的一个系统实现很高的并发性能,需要尽可能的减少请求的数量。
2.每秒请求数对比分析
从每秒请求数(Requests per second)对比图来看,可以得出以下结论:
a)从1K以内小文本来看,Apache的3000并发是分水岭,有理由相信:Apache的事件响应机制在3000并发的时候可能存在变化,3000以内继续以前的Select机制,3000以上改采用Poll的机制;
b)整体来看,5000点以内Nginx的性能最卓越,但是5000以上,Apache已经超越了Nginx的性能;
c)对于Lighttpd的中大型文本来说,每秒请求数基本恒定,个人分析与Lighttpd的mod_compress模块使用的Cache机制有关。
给前线建议
推荐项目中根据实际情况合理选择Web服务器。首先项目中选择Web服务器主要是从并发量和每秒请求数两个指标来分析,我的建议也是从这两方面来建议:
本次性能测试指标主要是从响应时间和每秒请求数作为对比参数,因为网卡吞吐量最大为1G,来回和接收大约在400M左右,从现有测试结果看,基本上都能满足需求。
测试方案
1.测试工具:
选择Apache自带的ab命令进行测试,典型的命令如下:
ab -n 100000 -c 500 -khttp://localhost:81/test-page-small.htm
1.从并发量来考虑:
目前公司实施人员在Apache方面实施经验最丰富,对于1000并发以内,可以考虑采用Apache作为项目的Web 服务器。
对于1000-5000之间的并发数量,请选择Nginx作为Web服务器。
单机5000以上的并发,实际上我们的图片、HTML等都不会是小型的文本,考虑页面的可用性,单机建议不予考虑5000以上的并发;
59K中大型文本
从大的请求来看,可以得出以下结论:
a)在5000并发以内,nginx的表现稍好于Apache和lighttpd;
b)在5000并发以上,lighttpd的并发优于Apache和Nginx
c)但整体而言,以这种单机在本机的测试结果来看,不管是哪种Web Server,在5000并发以上,单次请求的响应时间均超过了1s,已经不具有可用性。
2.从每秒请求数来考虑:
基本上每秒请求数和每秒PV值之间有一个10%的经典换算规律,所以项目根据经典以及每个产品的实际情况,可以从PV的角度演算出每秒请求数后再结合本次分析来制定Web服务器的选择方案。
每秒请求数6000以上,建议选择Nginx作为Web 服务器;
每秒请求数6000以内,可以考虑在Apache和Nginx之间做出选择;
由于Lighttpd主要是在fastCGI方面性能卓越,但实际上我们都是Java应用,另外1.5版本迟迟没有退出,建议任何时候都不要选择Lighttpd作为Web 服务器。
性能测试报告
主流Web服务器(W百度文库b Server)性能对比
目的
为了验证主流的Web服务器自身的性能,为今后的项目做参考,特进行本次性能对比测试。
本次性能对比测试在同一台物理主机上面进行测试,测试机器的网卡、Open Files等参数,各个Web服务器的参数均进行过优化。
物理主机的配置如下:
CPU 8核、内存4G的PC服务器、网卡1G
-n 指定总共请求数量
-c 同时并发的请求数
-k 客户端是否启用Keep Alive连接
2.测试方法:
在Linux本机用apache自带的ab工具进行测试。
为了保证客户端的端口性能,压力测试采用keep alive的模式和服务器进行通信.(不采用keep alive单机扛不住)
测试两种类型的静态文件:1K以下、59K的中大型静态HTML文件的请求。