<转>Shell脚本相关

it2024-10-19  28

转自:Jarvis Wang http://blog.chinaunix.net/uid/20560052.html

FIO测试脚本

FIO是一个UNIX环境下的硬盘和阵列性能测试工具,具有丰富的参数,可以调用各种各样的读写函数进行测试,帮助文档参见:http://www.cse.unsw.edu.au/~aaronc/iosched/doc/fio.1.html下面是我写的两个FIO测试脚本,一个用于随机I/O测试,一个用于多路顺序I/O测试:random_io_test.sh----------------------------------------------------------------------------target=$1size=`cat /proc/partitions | grep $target | awk '{print $3}'`model=`lsscsi | grep $target$ | awk '{printf "%s_%s",$4,$5}'`echo "CASEID,IOPS,RIOPS,RLAT,WIOPS,WLAT" | tee $model.$target.random.csvecho '' > $model.$target.random.logcp libaio.so.1 /lib64/for read in 0 20 40 60 80 100do    for block in 4 8 16 32    do        for queue in 1 2 4 8 16        do            name=R_${read}R_${block}K_${queue}Q            ./fio --name=$name --rw=randrw --direct=1 --norandommap --ioengine=libaio --runtime=60s --ioscheduler=noop --size=${size}k --filename=/dev/$target  --rwmixread=$read --bs=${block}k --iodepth=$queue --minimal >> $model.$target.random.log            tail -2 $model.$target.random.log | awk -F ";" -v BLOCK=$block '/K/{printf "%s,%.2f,%.2f,%.2f,%.2f,%.2f\n",$1,($5+$21)/BLOCK,$5/BLOCK,$13/1000,$21/BLOCK,$29/1000}' | tee -a $model.$target.random.csv        done #end queue depth    done #end block sizedone #end read percent----------------------------------------------------------------------------sequential_io_test.sh----------------------------------------------------------------------------target=$1size=`cat /proc/partitions | grep $target | awk '{print $3}'`model=`lsscsi | grep $target$ | awk '{printf "%s_%s",$4,$5}'`echo "CASEID,MBPS,RMBPS,RLAT,WMBPS,WLAT" | tee $model.$target.seqential.csvecho '' > $model.$target.seqential.logcp libaio.so.1 /lib64/for read in 0 20 40 60 80 100do    for block in 64 128 256 512    do        for stream in 1 2 4 8 16        do            name=S_${read}R_${block}K_${stream}S            ./fio --name=$name -rw=rw --direct=1 --ioengine=libaio --runtime=60s --ioscheduler=noop --filename=/dev/$target --rwmixread=$read --bs=${block}k --iodepth=1 --zonesize=$[size/stream]k --numjobs=$stream --group_reporting --minimal >> $model.$target.seqential.log            tail -2 $model.$target.seqential.log | awk -F ";" '/K/{printf "%s,%.2f,%.2f,%.2f,%.2f,%.2f\n",$1,($5+$21)/1024,$5/1024,$13/1000,$21/1024,$29/1000}' | tee -a $model.$target.seqential.csv        done #end queue depth    done #end block sizedone #end read percent----------------------------------------------------------------------------

 

Shell编程相关资料

Bash新手指南 http://xiaowang.net/bgb-cn/Linux Shell Scripting Tutorial v1.05r3http://www.cyberciti.biz/nixcraft/linux/docs/uniqlinuxfeatures/lsst/awk使用详细 http://blog.chinaunix.net/u/10047/showart_408156.htmlLinux Shell编程 http://tech.sina.com.cn/c/1073.htmlLinux系统用户账号的管理 http://it.sohu.com/2004/06/09/67/article220456718.shtml文件和目录访问权限设置 http://www.linuxsir.org/main/?q=node/112

转载于:https://www.cnblogs.com/demote/articles/2564350.html

最新回复(0)