分享一个脚本直接进行单盘fio性能测试,输出具体参数的测试结果。
1.使用脚本时直接./fio.sh 然后输入具体的盘符名,最后的结果会在fio.sh 所在目录下的output.csv文件;

2.测试过程中产生的文件都会在result目录下

3.具体脚本如下图,可以在框起来的地方增删读写方式、bs块大小,具体的fio 参数修改直接修改,最后输出的log文件会包含相应的参数名,然后进行数据收集展示。

`mkdir -p result
cd result
rm -rf *.log
echo "请输入待测盘:如nvme0n1/sda"
read device
echo "测试进行中......"
通过for 循环对fio不同参数进行测试并输出相应测试结果文件
for i in randwrite randread write read
do
for j in 1024k 4k
do
fio -filename=/dev/$device -iodepth=32 -ioengine=libaio -direct=1 -rw=$i -bs=$j -size=10g -numjobs=1 -runtime=200 -group_reporting -name=test-write -time_based >$i"_"$j.log
done
done
提取表头
header=(wr_size,bs,IOPS,BW)
生成带有表头的表格文件
output_file="output_table.csv"
echo "$header" > "$output_file"
获取所有以.log结尾的文件
files=$(ls -t *.log)
遍历每个文件
for file in $files; do
# 提取文件名中的字段
base_name="${file%.*}"
IFS="_" read -r operation size1 <<< "$base_name"
#提取IOPS、bw值
iops=$(cat "$file" | grep -i iops= | cut -d "," -f 1 | cut -d "=" -f 2)
BW=$(cat "$file" |grep -i iops=|cut -d "=" -f 3|cut -d "(" -f 2|tr ')' ' ')
data=($operation,$size1,$iops,$BW)
echo "$data" >> "$output_file"
done
`

浙公网安备 33010602011771号