Windows下Apache、Lighttpd、 Nginx(Ngwsx)静态文件访问测试对比

作者:匿名 hihi 来源:ChinaZ源码报导 浏览: 2012-2-9 16:21:52 字号:
[摘要]Ngwsx是Nginx的一个非官方的Windows移植版本,使用Windows的IOCP,支持高并发。本文介绍Windows下Apache、Lighttpd、 Nginx(Ngwsx)静态文件访问测试对比。

  今天测试主要针对静态文件的输出,选择将新浪首页的HTML代码另存为txt文件,然后使用ab进行压力测试。

系统环境:

  • 操作系统:winxp sp3
  • cpu: i3 ....
  • 内存: 4G

  具体不多说了,直接上截图:

  各个WebServer的软件版本号:

  • Apache 2.2.16.0,使用Zend Server自带的那个Apache2。
  • Lighttpd 1.4.28,cygwin编译版本。
  • Nginx 1.0.6,官方发布版本。

  Ngwsx,支持iopc模式的分支,https://github.com/zxy050/ngwsx。执行AB的在另外一台Ubuntu Server上进行,主要进行两种测试:

  • ab -t 10 .......
  • ab -c 100 -n 1000 .......

  取三个软件的测试结果做横向对比。

最终结论:

Apache

  • -t 10模式下,rps在14.8x - 15.1x之间。
  • -c 100 -n 1000模式下,rps在15.0x - 15.1x之间。

  Apache开启Gzip压缩输出,很不幸的,结果还差一些。

  • -t 10,rps在14.6x - 14.8x之间。
  • -c 100 -n 1000,rps在14.7x - 14.8x左右。

Nginx官方版本

  不知道为什么始终没法让worker_processes > 1,一旦> 1,就无法正常访问,所以只好用1测试,系统进程会存在两个nginx.exe,一个是守护进程,另外一个worker进程,内置启动默认4个线程。默认开启gzip压缩输出。

  • -t 10模式下,rps在15.9x - 16.1x之间。
  • -c 100 -n 1000模式下,rps在19.7x - 19.9x之间。
  是的,高并发模式下,看得出Nginx的工作情况更好些,工作进程CPU主要在%3 - %5之间波动。

Nginx的ngwsx分支

  测试途中,引起同事兴趣,建议我下载该版本做对比测试,遂行之。配置处处了Events里面可选iopc,且配置参数有些不同外,其他与nginx别无二致。这个分支可以使用 worker_processes 4,但是貌似没作用,启动后,只有一个ngwsx.exe进程,默认线程1。

  压力测试结果与Nginx官方版本相仿(略低,平均0.1 - 0.05之间,可以忽略不计了)。

  但是高并发模式下,CPU占用高达25%,但是他也就是维持在25%,由于当时心急与想测试Lighttpd,没有注意看,他是不是将计算分摊到4个CPU的核心上了。

Lighttpd cygwin编译版本

  本来没寄望Lighttpd会超过Nginx,因为很熟悉了,启动后,一个Lighttpd.exe进程,线程数3。不过还是有些惊喜:

  • -t 10模式下,rps在16.5x - 16.7x之间。
  • -c 100 -n 1000模式下,rps在19.3x - 19.5x之间。
  看得出,在-t压力测试下,lighttpd的表现更好些。

  这个测试基本上都使用WebServer的默认配置,也有部分配置进行调优,如Apache的mpm_winnt,默认是150,启动后工作进程线程数是157,然后调整到500,线程数是507,但是对测试完全没有影响,而内存、CPU的使用也不见疯涨。

  测试过程中,对另外一台UbuntuServer的试验机进行了等价的压力测试,ApacheServer,版本号没去查,CPU是AMD 速龙2.4G,4核(据说,我没去求证),4G内存。不过测试结果和Windows的Apache结果相近,没有惊喜,也没有失望。不过我清楚一点,Nginx和Lighttpd在Linux Server上,通过对各项参数调优,性能的提高会比ApacheServer要高(这个Apache也是我调整过mpm的MaxClients的),但是是否能高得过在Windows的表现呢?这个虽然是看似明显的问题(根据经验应该是Linux的IO性能要好些),不过还很难说,只有实际测试了才知道。

  明天会对三个服务器运行PHP的模型进行测试,当时然是Windows下的。如果时间允许,会在试验机上,静态编译nginx、Lighttpd、PHP,再做对比。

  附上截图,不然大家说我空口说白话,截图的内容没什么,就是Windows下集成了可自定义配置的Nginx、Lighttpd、PHP的环境包。

  最后一张图,万恶的ZendServer,他的小九九,明天再和大家分享。

sssss
Tags: apache   lighttpd   nginx   ngwsx   nginx访问测试  
责任编辑:190
编辑推荐排行