performance test

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

对软件进行 性能测试,需要写一个脚本来作驱动。

基本要求如下:

(1)每秒钟能并发M次;

(2)可以连续不断地执行N秒;

#需要并发执行的脚本 driver.pl

#每秒并发执行M次的脚本 MperSec.ksh

#! /usr/bin/ksh

# usage: MperSec.ksh M

MperSec= # is how many times per second

time{

for ((i=1;i<=$MperSec;i++))

do

driver.pl & # & means let the script run in background

done

wait

}

#连续执行N秒的脚本 NSecs.ksh

#! /usr/bin/ksh

#usage: NSecs.ksh N M

NSecs=

MperSecond=

for ((i=1;i<=$NSecs;i++))

do

MperSec.ksh& # & means let the script run in background

sleep 1

done

#How to invoke the whole test process

NSecs.ksh 7200 6 |tee test.log

#----------------经过测试的版本----------------------------------

# Solaris 9 ksh

#! /usr/bin/ksh

# usage: MperSec.ksh M

MperSec="" # is how many times per second

function func

{

i=1

while [ "$i" -lt "$MperSec" ]

do

driver.pl & # & means let the script run in background

i=$(($i+1))

done

wait

}

time func

#(time func) 2>&1|awk ’/real/{print }’

#! /usr/bin/ksh

# usage: MperSec.ksh M

MperSec="" # is how many times per second

function func

{

i=1

while [ "$i" -lt "$MperSec" ]

do

ipqueryClient.pl & # & means let the script run in background

i=$(($i+1))

done

wait

}

time func

#(time func) 2>&1|awk ’/real/{print }’

#------------改进方向----------------------

如果让这些driver.pl在一秒内均匀的触发而不是一下子M个全在后台起来

参考:

#--------------------------------------------------------------------------------

start=$(date +%s)

dd if=/dev/hdisk2 of=/dev/null bs=8k count=10000 &

dd if=/dev/hdisk2 of=/dev/null bs=8k count=10000 &

.

.

.

wait

end=$(date +%s)

echo $(($end-$start))

只能算到秒

#--------------------------------------------------------------------------------

time {

dd if=/dev/hdisk2 of=/dev/null bs=8k count=10000 &

dd if=/dev/hdisk2 of=/dev/null bs=8k count=10000 &

.

.

.

wait ;

}

#--------------------------------------------------------------------------------

linux下用proc信息手工计算 单位是 1/100秒

代码:

#!/bin/bash

start=$(awk ’{print }’ /proc/$$/stat)

dd if=/dev/hdisk2 of=/dev/null bs=8k count=10000 &

dd if=/dev/hdisk2 of=/dev/null bs=8k count=10000 &

.

.

.

wait

sleep 3 &

end=$(awk ’{print }’ /proc/$!/stat)

echo $(($end-$start))

kill -9 $!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航