新工作已經找到了,最近在忙着熟悉環境,昨天領導讓我接觸下httperf壓力測試工具
百度了下,相關的文檔,准備着手配置一個測試環境基於linux系統httperf+autobench+gnuplot,
httperf可支持單獨使用,autobench是基於httperf的Perl腳本,保存測試結果生成文件,gnuplot可以對生成的文件轉化成易於觀察的圖形文件
首先當然是新建一個linux的虛擬機
博主這里使用的是CentOS-6.6-64位系統
因為是安裝配置都是源碼編譯,先行安裝編譯環境
yum -y install gcc
由於后續編譯中涉及到ncurse文件系統,所以先行安裝
yum install ncurses-devel
由於這里使用的CentOS版本可以使用 yum 命令來操作文件的安裝
下面依次安裝流程:GD2, texinfo, gnuplot, httperf, autobench
安裝包的下載都放在 /usr/local/src 目錄下
進入linux系統終端或者命令行界面
安裝gd-2.0.33包:
cd /usr/local/src wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz tar xzvf gd-2.0.33.tar.gz cd gd-2.0.33 ./configure --prefix=/usr/local/gd2 make make install
echo "//usr/local/gd2/lib">>/etc/ld.conf
ldconfig
安裝texinfo-4.8包:
cd /usr/local/src wget http://ftp.gnu.org/gnu/texinfo/texinfo-4.8.tar.gz tar zxvf texinfo-4.8.tar.gz cd texinfo-4.8 ./configure make
make install
安裝gnuplot-4.2.0包:
cd /usr/local/src wget http://nchc.dl.sourceforge.net/sourceforge/gnuplot/gnuplot-4.2.0.tar.gz tar zxvf gnuplot-4.2.0.tar.gz cd gnupolt-4.2.0 ./configure \ --prefix=/usr/local/gnuplot \ --with-cwdrc --without-row-help \ --with-kpsexpand \ --with-gd=/usr/local/gd2 make make install
安裝httperf-0.9.0包:
cd /usr/local/src wget ftp://ftp.hpl.hp.com/pub/httperf/httperf-0.9.0.tar.gz tar zxvf httperf-0.9.0.tar.gz cd httperf-0.9.0 ./configure --prefix=/usr/local/httperf make make install
安裝autobench-2.1.2包:
cd /usr/local/src wget http://www.xenoclast.org/autobench/downloads/autobench-2.1.2.tar.gz tar zxvf autobench-2.1.2.tar.gz cd autobench-2.1.2 make make install
配置環境變量
vi /etc/profile
在第48行 HISTSIZE=1000下方添加
export PATH=/usr/local/bin:/usr/local/gnuplot/bin:/usr/local/httperf/bin:$PATH
保存退出后配置環境變量生效
source /etc/profile
現在就已經可以通過 bench2graph 文件對httperf的測試結果文件生成圖形文件
但是這里涉及到生成圖形顏色的問題,考慮到不更改源代碼,先復制源文件
cp /usr/local/bin/bench2graph /usr/local/bin/bench2ps
注意:網上都說要通過sed -i修改文件內容(PS:博主這里加了這段命令后生成圖片文件的時候反而報錯,不知道原因,直接使用原文件是可以的)
sed -i 's/postscript color/png xffffff/g' /usr/local/bin/bench2ps
接下來在使用過程中會遇到一個報錯
httperf: warning: open file limit > FD_SETSIZE; limiting max. # of open files to FD_SETSIZE
需要修改2個文件:
vi /etc/security/limits.conf
在文件最后一行添加
* hard nofile 102400 * soft nofile 102400
再修改另一文件:
vi /usr/include/bits/typesizes.h
在文件第63行的值修改成102400
以上2個文件修改之后,需要重新編譯httperf
cd /usr/local/src/httperf-0.9.0 ./configure --prefix=/usr/local/httperf make make install
配置過程全部結束,下來是介紹一下簡單的使用
博主這里對百度首頁為例,百度對應的IP:202.108.22.5,端口:80
/usr/local/bin/autobench \ > --single_host \ > --host1=202.108.22.5 \ > --port1=80 \ > --quiet \ > --low_rate=10 \ > --high_rate=1000 \ > --rate_step=10 \ > --num_call=1 \ > --num_conn=100 \ > --timeout=10 \ > --file /opt/result1.tsv
再通過修改后的文件bench2ps,命令格式:
bench2ps 測試結果文件 測試圖形文件
/usr/local/bin/bench2ps /opt/result1.tsv /opt/result1.ps 1 2 3 4 5 6 7 8 9
輸入標題后,成功生成圖片文件