博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
<转>Shell脚本相关
阅读量:5322 次
发布时间:2019-06-14

本文共 2500 字,大约阅读时间需要 8 分钟。

转自:Jarvis Wang 

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=$1
size=`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.csv
echo '' > $model.$target.random.log
cp libaio.so.1 /lib64/
for read in 0 20 40 60 80 100
do
    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 size
done #end read percent
----------------------------------------------------------------------------
sequential_io_test.sh
----------------------------------------------------------------------------
target=$1
size=`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.csv
echo '' > $model.$target.seqential.log
cp libaio.so.1 /lib64/
for read in 0 20 40 60 80 100
do
    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 size
done #end read percent
----------------------------------------------------------------------------

 

Shell编程相关资料

Bash新手指南 

Linux Shell Scripting Tutorial v1.05r3
awk使用详细 
Linux Shell编程 
Linux系统用户账号的管理 
文件和目录访问权限设置 

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

你可能感兴趣的文章
Redis常用命令
查看>>
2018.11.06 bzoj1040: [ZJOI2008]骑士(树形dp)
查看>>
2019.02.15 bzoj5210: 最大连通子块和(链分治+ddp)
查看>>
redis cluster 集群资料
查看>>
微软职位内部推荐-Sr. SE - Office incubation
查看>>
微软职位内部推荐-SOFTWARE ENGINEER II
查看>>
centos系统python2.7更新到3.5
查看>>
C#类与结构体究竟谁快——各种函数调用模式速度评测
查看>>
我到底要选择一种什么样的生活方式,度过这一辈子呢:人生自由与职业发展方向(下)...
查看>>
poj 题目分类
查看>>
windows 安装yaml支持和pytest支持等
查看>>
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
套接口和I/O通信
查看>>
阿里巴巴面试之利用两个int值实现读写锁
查看>>
浅谈性能测试
查看>>
Winform 菜单和工具栏控件
查看>>
CDH版本大数据集群下搭建的Hue详细启动步骤(图文详解)
查看>>
巧用Win+R
查看>>
浅析原生js模仿addclass和removeclass
查看>>