一、目的利用autobench工具结合httperf命令对web服务器进行测试,得出该服务器可以承载的最大并发连接数与最佳并发数。 二、测试工具工具介绍1、Httperfhttperf 是一款高性能的HTTP测试工具,使用它我们可以准确定位服务器的并发连接能力。下面介绍一下它的主要特征 (1) 可以观察测试客户端(并非被测服务器)在发起压力测试时的负载情况。这样在测试高并发的情况下可以准确的分析问题。(被测服务器无法承载高并发还是测试客户端无法发起过多请求) 下载:http://code.google.com/p/httperf/downloads/list 安装: 更多的使用方法参见man page。 2、autobenchautobench 是一款基于httperf的Perl脚本。它会在一次测试中调用多次httperf来对web服务器进行测试,每次会按照给定的参数增加并发连接数,将 httperf的测试结果保存为CSV格式的文件,该文件可以被Excel直接读取,方便生成测试报告。借助于autobench自带的 bench2graph工具可以生成漂亮的测试结果对比图,如下: 下载:http://www./autobench/downloads/ 安装: # yum install gd gnuplot pcre pcre-devel texinfo -y 使用方法:参见下文在实际测试中的使用 三、测试环境系统环境 web软件环境 在测服务器并发能力时会将apache与nginx对比测试 硬件环境 CPU::E5504 2.00GHz 四、测试方法1、 分别测试静态文件和动态php文件 1、开始测试(1)静态文件测试命令 # autobench --single_host --host1=192.168.8.8 --port1=80 --uri1=/logo.gif --quiet --low_rate=50 --high_rate=1500 --rate_step=50 --num_call=1 --num_conn=2000 --timeout=10 --file /tmp/result.tsv 测试结果总结: Apache与Nginx在并发50~1500时表现得都还可以,只不过在并发数达到1500后Apache的响应时间变得很长,由于系统环境的制 约,我没有再测试大于1500的并发连接情况,但可以对比看出nginx在1500个并发连接的情况下还能保持较低的响应时间。 (2)动态文件测试命令 # autobench --single_host --host1=192.168.8.8 --port1=80 --uri1=/test.php --quiet --low_rate=5 --high_rate=100 --rate_step=5 --num_call=1 --num_conn=200 --timeout=10 --file /tmp/nginx_php1.tsv 测试结果数据
测试数据 测试总结 由上面的报表以及这张曲线图可以看出,无论是apache还是nginx其php并发大于30其响应时间的就会直线上升,nginx略好于 apache,因此可以判断这台服务器的php并发极限在30左右,当然这里指的php连接中是没有连接数据库的,也没有加入memcached等缓存机 制。 (3)高并发下系统资源情况
分析测试结果 CPU使用情况 内存使用情况 负载情况 五、结论利用httperf结合autobench可以很方便的测试出单台服务器的极限并发数,这样对服务器性能评估有很大帮助,借助于autobench的bench2graph脚本可以生成更为直观的对比图。 针对被测服务器,经过apache与nginx的对比发现,在静态文件的处理方面如果并发小于1500,apache和nginx之间的差距还是很 小的。在动态php文件的并发测试中,nginx体现出其强大的性能优势,如果内存足够大,通过调整php-cgi数量,相信可以承载更多的并发连接。 六、附录1、问题解决(1)当运行时报如下错误 httperf: warning: open file limit > FD_SETSIZE; limiting max. # of open files to FD_SETSIZE 解决方法 其意思是说在httperf在发起连接请求时,单个进程已经无法再打开更多的文件描述符。在发起连接请求时httperf使用select()方法使用一个新的文件描述符。因此需要增加文件描述符限制 步骤1:编辑/etc/security/limits.conf 在最后添加下面两行内容 步骤2:编辑 /usr/include/bits/typesizes.h 文件修改__FD_SET_SIZE常量值,如下 步骤3:重新编译httperf 2、参考文章http://www./qiujian5628/archive/2008/03/10/44060.html 原创文章,转载请注明: 转自 http:// |
|