web性能测试之httperf与autobench
[
2008/06/30 16:42 | by askwan ]
2008/06/30 16:42 | by askwan ]
平台freebsd7.0
httperf是HP公司的,相关文档和软件到这里找,而autobench是调用httpperf测试的一个脚本软件工具
,增加了一些功能参数,可以自动化测试,还可以配合gunplot作出图形来表示性能测试的结果
http://www.hpl.hp.com/research/linux/httperf/
ports安装httperf
#cd /usr/potrs/benchmarks/httperf
#make install clean
#cd /usr/ports/benchmarks/autobench
#make install clean
#autobench --single_host --host1=www.askwan.com --port1=80 --quiet --low_rate=50 --high_rate=100 --rate_step=10 --num_call=1 --num_conn=2000 --timeout=10 --file /home/askwan.tsv
#bench2graph /home/askwan.tsv /home/askwan.png [ 1 2 3 4 5 6 7 8 9 ]
httperf是HP公司的,相关文档和软件到这里找,而autobench是调用httpperf测试的一个脚本软件工具
,增加了一些功能参数,可以自动化测试,还可以配合gunplot作出图形来表示性能测试的结果
http://www.hpl.hp.com/research/linux/httperf/
ports安装httperf
#cd /usr/potrs/benchmarks/httperf
#make install clean
#cd /usr/ports/benchmarks/autobench
#make install clean
#autobench --single_host --host1=www.askwan.com --port1=80 --quiet --low_rate=50 --high_rate=100 --rate_step=10 --num_call=1 --num_conn=2000 --timeout=10 --file /home/askwan.tsv
#bench2graph /home/askwan.tsv /home/askwan.png [ 1 2 3 4 5 6 7 8 9 ]
用httping测试web页面响应时间
[
2008/06/27 11:23 | by askwan ]
2008/06/27 11:23 | by askwan ]
性能测试是软件测试中很重要的工程工程,有时候我们需要测试的一项内容便是web页面响应时间,httping就是
这样一种专门用来测试web页面响应时间的开源软件。
在freebsd下安装
用法如下
每一个选项都有注释 比较好懂
下面就用他来测试本地到sina的页面响应时间吧
由于网络延时 堵塞等原因 可能出现不稳定的结果
测试10次取平均值
平均值为1625.8ms,也就是1.63s
如果是测试本网段的某个主机,则测试结果就比较可以信任了
最小web页面响应时间:17.1 ms
平均web页面响应时间:29.8 ms
最大web页面响应时间:107.0 ms
一般来说 对我们有意义的数据是是平均值
可以用shell直接取到这个值得
还可以配合shell和rrdtool可以画出一张完美的web响应时间图来,还不错,^_^^_^
----------------------------------------EOF--------------------------------------------------------
这样一种专门用来测试web页面响应时间的开源软件。
在freebsd下安装
Quotation
#cd /usr/ports/net/httping
#make install clean
#rehash
#make install clean
#rehash
用法如下
Quotation
#httping -h
httping: option requires an argument -- h
HTTPing v1.2.6, (C) 2003-2008 folkert@vanheusden.com
SSL support included
-g url url (e.g. -g http://localhost/)
-h hostname hostname (e.g. localhost)
-p portnr portnumber (e.g. 80)
-x host:port hostname+portnumber of proxyserver
-c count how many times to connect
-i interval delay between each connect
-t timeout timeout (default: 30s)
-s show statuscodes
-S split time in connect-time and processing time
-G do a GET request instead of HEAD (read the
contents of the page as well)
-b show transfer speed in KB/s (use with -G)
-B like -b but use compression if available
-L x limit the amount of data transferred (for -b)
to 'x' (in bytes)
-X show the number of KB transferred (for -b)
-l connect using SSL
-z show fingerprint (SSL)
-f flood connect (no delays)
-a audible ping
-m give machine parseable output (see
also -o and -e)
-o rc,rc,... what http results codes indicate 'ok'
coma seperated WITHOUT spaces inbetween
default is 200, use with -e
-e str string to display when http result code
doesn't match
-I str use 'str' for the UserAgent header
-R str use 'str' for the Referer header
-r resolve hostname only once (usefull when
pinging roundrobin DNS: also takes the first
DNS lookup out of the loop so that the first
measurement is also correct)
-n warn,crit Nagios-mode: return 1 when avg. response time
>= warn, 2 if >= crit, otherwhise return 0
-N x Nagios mode 2: return 0 when all fine, 'x'
when anything failes
-y ip[:port] bind to ip-address (and thus interface) [/port]
-q quiet, only returncode
-V show the version
HTTPing v1.2.6, (C) 2003-2008 folkert@vanheusden.com
SSL support included
-g url url (e.g. -g http://localhost/)
-h hostname hostname (e.g. localhost)
-p portnr portnumber (e.g. 80)
-x host:port hostname+portnumber of proxyserver
-c count how many times to connect
-i interval delay between each connect
-t timeout timeout (default: 30s)
-s show statuscodes
-S split time in connect-time and processing time
-G do a GET request instead of HEAD (read the
contents of the page as well)
-b show transfer speed in KB/s (use with -G)
-B like -b but use compression if available
-L x limit the amount of data transferred (for -b)
to 'x' (in bytes)
-X show the number of KB transferred (for -b)
-l connect using SSL
-z show fingerprint (SSL)
-f flood connect (no delays)
-a audible ping
-m give machine parseable output (see
also -o and -e)
-o rc,rc,... what http results codes indicate 'ok'
coma seperated WITHOUT spaces inbetween
default is 200, use with -e
-e str string to display when http result code
doesn't match
-I str use 'str' for the UserAgent header
-R str use 'str' for the Referer header
-r resolve hostname only once (usefull when
pinging roundrobin DNS: also takes the first
DNS lookup out of the loop so that the first
measurement is also correct)
-n warn,crit Nagios-mode: return 1 when avg. response time
>= warn, 2 if >= crit, otherwhise return 0
-N x Nagios mode 2: return 0 when all fine, 'x'
when anything failes
-y ip[:port] bind to ip-address (and thus interface) [/port]
-q quiet, only returncode
-V show the version
每一个选项都有注释 比较好懂
下面就用他来测试本地到sina的页面响应时间吧
由于网络延时 堵塞等原因 可能出现不稳定的结果
测试10次取平均值
Quotation
#httping -c10 -g http://www.sina.com.cn
PING www.sina.com.cn:80 (http://www.sina.com.cn):
connected to www.sina.com.cn:80, seq=0 time=8.76 ms
connected to www.sina.com.cn:80, seq=1 time=4.81 ms
connected to www.sina.com.cn:80, seq=2 time=5005.72 ms
connected to www.sina.com.cn:80, seq=3 time=6204.22 ms
connected to www.sina.com.cn:80, seq=4 time=5.45 ms
connected to www.sina.com.cn:80, seq=5 time=5.63 ms
connected to www.sina.com.cn:80, seq=6 time=7.44 ms
connected to www.sina.com.cn:80, seq=7 time=5006.06 ms
connected to www.sina.com.cn:80, seq=8 time=5.16 ms
connected to www.sina.com.cn:80, seq=9 time=5.01 ms
--- http://www.sina.com.cn ping statistics ---
10 connects, 10 ok, 0.00% failed
round-trip min/avg/max = 4.8/1625.8/6204.2 ms
connected to www.sina.com.cn:80, seq=0 time=8.76 ms
connected to www.sina.com.cn:80, seq=1 time=4.81 ms
connected to www.sina.com.cn:80, seq=2 time=5005.72 ms
connected to www.sina.com.cn:80, seq=3 time=6204.22 ms
connected to www.sina.com.cn:80, seq=4 time=5.45 ms
connected to www.sina.com.cn:80, seq=5 time=5.63 ms
connected to www.sina.com.cn:80, seq=6 time=7.44 ms
connected to www.sina.com.cn:80, seq=7 time=5006.06 ms
connected to www.sina.com.cn:80, seq=8 time=5.16 ms
connected to www.sina.com.cn:80, seq=9 time=5.01 ms
--- http://www.sina.com.cn ping statistics ---
10 connects, 10 ok, 0.00% failed
round-trip min/avg/max = 4.8/1625.8/6204.2 ms
平均值为1625.8ms,也就是1.63s
如果是测试本网段的某个主机,则测试结果就比较可以信任了
Quotation
#httping -c10 -g http://www.askwan.com
PING www.askwan.com:80 (http://www.askwan.com):
connected to www.askwan.com:80, seq=0 time=17.11 ms
connected to www.askwan.com:80, seq=1 time=23.52 ms
connected to www.askwan.com:80, seq=2 time=18.72 ms
connected to www.askwan.com:80, seq=3 time=19.37 ms
connected to www.askwan.com:80, seq=4 time=107.02 ms
connected to www.askwan.com:80, seq=5 time=19.70 ms
connected to www.askwan.com:80, seq=6 time=31.35 ms
connected to www.askwan.com:80, seq=7 time=21.85 ms
connected to www.askwan.com:80, seq=8 time=19.67 ms
connected to www.askwan.com:80, seq=9 time=19.52 ms
--- http://www.askwan.com ping statistics ---
10 connects, 10 ok, 0.00% failed
round-trip min/avg/max = 17.1/29.8/107.0 ms
测试结果出来了 connected to www.askwan.com:80, seq=0 time=17.11 ms
connected to www.askwan.com:80, seq=1 time=23.52 ms
connected to www.askwan.com:80, seq=2 time=18.72 ms
connected to www.askwan.com:80, seq=3 time=19.37 ms
connected to www.askwan.com:80, seq=4 time=107.02 ms
connected to www.askwan.com:80, seq=5 time=19.70 ms
connected to www.askwan.com:80, seq=6 time=31.35 ms
connected to www.askwan.com:80, seq=7 time=21.85 ms
connected to www.askwan.com:80, seq=8 time=19.67 ms
connected to www.askwan.com:80, seq=9 time=19.52 ms
--- http://www.askwan.com ping statistics ---
10 connects, 10 ok, 0.00% failed
round-trip min/avg/max = 17.1/29.8/107.0 ms
最小web页面响应时间:17.1 ms
平均web页面响应时间:29.8 ms
最大web页面响应时间:107.0 ms
一般来说 对我们有意义的数据是是平均值
可以用shell直接取到这个值得
Quotation
#httping -c5 -g http://www.askwan.com | tail -n1 | awk '{print $4}' | cut -d/ -f2
还可以配合shell和rrdtool可以画出一张完美的web响应时间图来,还不错,^_^^_^
----------------------------------------EOF--------------------------------------------------------
freebsd 7.0 之内核编译
[
2008/06/25 16:00 | by askwan ]
2008/06/25 16:00 | by askwan ]
今天把一台freebsd7.0的web服务器重新编译了下内核,写下来备忘
编辑askwan20080625,内核中各种选项意义都有相应注释,下面是我为这台机器编辑的内核配置文件
######## askwan kernel confiuration ###########
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.474.2.2.2.1 2008/02/06 03:24:28 scottl Exp $
#cpu I486_CPU
#cpu I586_CPU
cpu I686_CPU
ident askwan20080625
#现在机器基本上用不着486和586的了
Quotation
#cd /usr/src/sys/i386/conf/
#cp GENERIC askwan20080625
#cp GENERIC askwan20080625
编辑askwan20080625,内核中各种选项意义都有相应注释,下面是我为这台机器编辑的内核配置文件
######## askwan kernel confiuration ###########
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.474.2.2.2.1 2008/02/06 03:24:28 scottl Exp $
#cpu I486_CPU
#cpu I586_CPU
cpu I686_CPU
ident askwan20080625
#现在机器基本上用不着486和586的了
# To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
#options SCHED_4BSD # 4BSD scheduler
options SCHED_ULE
# SCHED_ULE新的freebsd的调度器,转为SMP设计的,不过还处于试验性阶段
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
#options INET6 # IPv6 communications protocols
#options SCTP # Stream Control Transmission Protocol
#不需要ipv6了
#hints "GENERIC.hints" # Default places to look for devices.
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
#options SCHED_4BSD # 4BSD scheduler
options SCHED_ULE
# SCHED_ULE新的freebsd的调度器,转为SMP设计的,不过还处于试验性阶段
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
#options INET6 # IPv6 communications protocols
#options SCTP # Stream Control Transmission Protocol
#不需要ipv6了
折腾ESX3.5 update 1两天,总算跑起来了
[
2008/06/20 14:27 | by askwan ]
2008/06/20 14:27 | by askwan ]
起初,很想体验一下ESX 最新版本3.5 update 1的强大功能 ,便有了下文
开始在一台裸机上装 ,配置 是 双 CPU XEON 2.4 KHZ + SCSI 73G + 2G RAM +2千兆网卡
启动后 ,发现无法识别硬盘 ,倒了 ,再看看vm的内核是基于linux2.4的,机器很老,先想到
用软盘加载硬盘驱动,无果。接着啃 vm esx install guide ,最后发现只有vmware 测试支持的硬件
才可以通过安装,猜想我的这机器貌似真的很老了,机器的硬件不在vmware支持之列,遗憾啊……
既然裸机不可以装,我就想用workstation装,用的vm workstation6.0 ,设置好后,修改vmx配置文件
将网卡类型修改了,有兄弟要问了,为什么要修改网卡? 你试试就知道了,呵呵
网卡修改成这个是可以通过的 ethernet0.virtualDev = "e1000",在加上
monitor_control.restrict_backdoor = TRUE,monitor_control.vt32 = TRUE ,我的是intel的
amd的用这个 monitor_control.enable_svm = TRUE ,就这样装是装起来了,可是启动速度慢的
不是一般人可以承受的,这也难怪,本身esx就是裸机装的,装到虚拟机上,跑得慢也是正常,不过,有个
好消息是Workstation 6.5 貌似可以很好支持ESX,启动速度也比较快,有兄弟做过,等不忙了,俺也测试测试
这张我最后胜利安装的截图
开始在一台裸机上装 ,配置 是 双 CPU XEON 2.4 KHZ + SCSI 73G + 2G RAM +2千兆网卡
启动后 ,发现无法识别硬盘 ,倒了 ,再看看vm的内核是基于linux2.4的,机器很老,先想到
用软盘加载硬盘驱动,无果。接着啃 vm esx install guide ,最后发现只有vmware 测试支持的硬件
才可以通过安装,猜想我的这机器貌似真的很老了,机器的硬件不在vmware支持之列,遗憾啊……
既然裸机不可以装,我就想用workstation装,用的vm workstation6.0 ,设置好后,修改vmx配置文件
将网卡类型修改了,有兄弟要问了,为什么要修改网卡? 你试试就知道了,呵呵
网卡修改成这个是可以通过的 ethernet0.virtualDev = "e1000",在加上
monitor_control.restrict_backdoor = TRUE,monitor_control.vt32 = TRUE ,我的是intel的
amd的用这个 monitor_control.enable_svm = TRUE ,就这样装是装起来了,可是启动速度慢的
不是一般人可以承受的,这也难怪,本身esx就是裸机装的,装到虚拟机上,跑得慢也是正常,不过,有个
好消息是Workstation 6.5 貌似可以很好支持ESX,启动速度也比较快,有兄弟做过,等不忙了,俺也测试测试
这张我最后胜利安装的截图




