Httperf + AutoBech + GnuPlot 构建 WEB SERVER 压力测试系统(2011-09-23 17:33:02)Apache ab 可能是最知名,也是最容易使用的一个压力测试工具。但 ab 相对比较简单,做一些轻量级的,或者要求相对宽松的 WEB 压力测试是比较合适的。但碰到复杂环境,或者需要同时测试两台 WEB SERVER (两个环境)进行对比时,ab 就显的力不从心了。并且,在正规的压力测试报告中,还需要对数据结果进行绘图分析。这些,都是 ab 所不具备的。所以,特意研究了一下 Httperf + AutoBech + GnuPlot 测试系统,发现这个测试平台还是非常不错的,测试方法和手段灵活,支持 2 台 WEB SERVER 进行对比测试,并且能够快速方便的生成各个测试项目的统计图表。 作者:Nanu <http://www./> 一、资源 二、安装 Httperf & Httperf ./configure --prefix=/usr/local/httperf make && make install export PATH="$PATH:/usr/local/httperf/bin" 2. AutoBech make && make install 三、安装 GnuPlot png-devel, libjpeg-devel, libtiff-devel, freetype-devel 2. 安装 GD ./configure --prefix=/usr/local/gd2 3. 安装 GnuPlot ./configure \ "--prefix=/usr/local/gnuplot" \ "--with-cwdrc" \ "--without-row-help" \ "--with-kpsexpand" \ "--with-gd=/usr/local/gd2" \ make && make install ln -s /usr/local/gd2/lib/libgd.so.2.0.0 /usr/lib/libgd.so.2 四、测试 httperf \ --hog \ --server=home. \ --uri=/mysql.php \ --wsess=100,1000,3 \ --burst-length=10 \ --rate=5 \ --timeout=5 如果得出有效测试结果则继续。 2. AutoBech ./autobench \ --single_host \ --host1=home. \ --port1=80 \ --uri1=/mysql.php --quiet \ --low_rate=10 \ --high_rate=100 \ --rate_step=5 \ --num_call 15 \ --num_conn 5000 \ --timeout=10 \ --file /opt/Result.tsv Double Host ./autobench \ --host1=home. \ --port1=80 \ --uri1=/mysql.php \ --host2=h. \ --port2=80 \ --uri2=/mysql_p.php \ --quiet \ --low_rate=5 \ --high_rate=100 \ --rate_step=5 \ --num_call=5 \ --num_conn=1000 \ --timeout=10 \ --file /opt/Result.tsv 3. 生成 PNG 测试图像 cp /usr/local/bin/bench2graph /usr/local/bin/bench2png vi /usr/local/bin/bench2png 找到:echo set terminal postscript color > gnuplot.cmd 改为:echo set terminal png large size 640,480 truecolor > gnuplot.cmd 找到:set data style 改为:set style data (2) 生成图像 /usr/local/bin/bench2png /opt/Result.tsv /opt/Result.png [1 2 3 ... n] ( 1 2 3 ... n: 表示 Results.tsv 结果集文件中的项目 ) |
|