#!/bin/bash
output_dir=/home/script/analyse_iosize
outputfile=/home/script/analyse_iosize/io_percent.txt
if [ ! -e $output_dir ];then
mkdir -p $output_dir
else
rm -rf $output_dir/*
fi
if [ $# -lt 1 ];then
echo $0 "<file>"
exit
fi
echo $0 $1
filename=$1
function analyse_io()
{
io_num=`cat $filename |grep LEN |wc -l`
echo $io_num
io_size=`cat $filename |grep LEN | awk '{a=index($0,"L");b=index($0," DEP");print substr($0,a+4,b-a-3)}'|sort -n`
echo "$io_size">$output_dir/io_size.txt
echo $output_dir/io_size.txt | awk 'NR==FNR{a[$1]++}NR!=FNR&&++b[$1]==1{print $1,$2,a[$1]}' $output_dir/io_size.txt $output_dir/io_size.txt > $output_dir/io_percent.txt
a=`cat $output_dir/io_percent.txt | wc -l`
for (( i = 0; i <= $a; i++ ))
do
j=`cat $output_dir/io_percent.txt |awk "NR==$i{print}"|awk '{print $2}'`
var=`echo "scale=2;100*$j / $io_num"|bc`
echo $var >> $output_dir/io_percent1.txt
done
sed -i '1d' $output_dir/io_percent1.txt
paste -d " " $output_dir/io_percent.txt $output_dir/io_percent1.txt >$output_dir/io_analyse.csv
# for size in $io_size ;do
# echo "$size"
# num=`cat $filename |grep LEN |grep $size | wc -l`
# echo $num
# percent=`echo $(echo "scale=2; 100*$num / $io_num" | bc )`
# echo "$percent" >>$output_dir/percent.txt
# done
# paste -d "," $output_dir/io_size.txt $output_dir/percent.txt >$output_dir/io_analyse.csv
}
analyse_io
统计io操作日志中的块大小、个数以及所占百分比的脚本
最新推荐文章于 2022-10-31 12:01:45 发布