Skip to content

Instantly share code, notes, and snippets.

@tcooper
Created November 8, 2014 23:52
Show Gist options
  • Save tcooper/5f0c314beecd096ffcff to your computer and use it in GitHub Desktop.
Save tcooper/5f0c314beecd096ffcff to your computer and use it in GitHub Desktop.
Summarize iozone reports
#!/bin/bash
function summarize_for_pattern() {
LOG_PATTERN=$1
#echo "128K IO - Streaming Write Bandwidth - 16 Initial Writers"
echo -e " Child"
echo -e " Min Max Avg Aggr Units"
echo -n "initial writers (bw): "
for val in Min Max Avg Children;
do
egrep "Running|through" ${LOG_PATTERN} | \
grep -v "Parent" | \
grep "16 initial writers" -A3 | \
grep $val | \
awk '{count++; if ($2 == "Children") { sum+=$10 } else {sum+=$7}} END {printf "%5d ",sum/count/1000}'
done
echo -e " MB/s"
#echo "128K IO - Streaming Write Bandwidth - 16 Rewriters"
echo -n "rewriters (bw): "
for val in Min Max Avg Children;
do
egrep "Running|through" ${LOG_PATTERN} | \
grep -v "Parent" | \
grep "16 rewriters" -A3 | \
grep $val | \
awk '{count++; if ($2 == "Children") { sum+=$9 } else {sum+=$7}} END {printf "%5d ",sum/count/1000}'
done
echo -e " MB/s"
#echo "128K IO - Streaming Read Bandwidth - 16 Readers"
echo -n "readers (bw): "
for val in Min Max Avg Children;
do
egrep "Running|through" ${LOG_PATTERN} | \
grep -v "Parent" | \
grep "16 readers" -A3 | \
grep $val | \
awk '{count++; if ($2 == "Children") { sum+=$9 } else {sum+=$7}} END {printf "%5d ",sum/count/1000}'
done
echo -e " MB/s"
#echo "128K IO - Streaming Read Bandwidth - 16 re-readers"
echo -n "re-readers (bw): "
for val in Min Max Avg Children;
do
egrep "Running|through" ${LOG_PATTERN} | \
grep -v "Parent" | \
grep "16 re-readers" -A3 | \
grep $val | \
awk '{count++; if ($2 == "Children") { sum+=$9 } else {sum+=$7}} END {printf "%5d ",sum/count/1000}'
done
echo -e " MB/s"
#echo "4K IO - Random Read IOPS"
echo -n "4k read (iops): "
for val in Min Max Avg Children;
do
egrep "Running|through" ${LOG_PATTERN} | \
grep -v "Parent" | \
grep "16 random readers" -A3 | \
grep $val | \
awk '{count++; if ($2 == "Children") { sum+=$10 } else {sum+=$7}} END {printf "%5d ",sum/count}'
done
echo -e " ops/s"
#echo "4K IO - Random Write IOPS"
echo -n "4k write (iops): "
for val in Min Max Avg Children;
do
egrep "Running|through" ${LOG_PATTERN} | \
grep -v "Parent" | \
grep "16 random writers" -A3 | \
grep $val | \
awk '{count++; if ($2 == "Children") { sum+=$10 } else {sum+=$7}} END {printf "%5d ",sum/count}'
done
echo -e " ops/s\n"
}
echo "================================================================================"
echo "Single Pool of 36 Drives"
echo "16 clients, 1 client/core, 8g(bw) or 1g(iops) file size / client, 1024k IO Size"
echo "--------------------------------------------------------------------------------"
summarize_for_pattern 'run_iozone_pool_1024k_[0-9]*.log'
echo "================================================================================"
echo "Multiple Pools (1 x 18, 2 x 9) of 36 Drives"
echo "16 clients, 1 client/core, 8g(bw) or 1g(iops) file size / client, 1024k IO Size"
echo "--------------------------------------------------------------------------------"
summarize_for_pattern 'run_iozone_multipool_*.log'
for npools in 1 2 4;
do
drives_per_pool=$(echo "36 / $npools" | bc)
echo "================================================================================"
echo "${npools} pools of ${drives_per_pool} drives (36 drives total)"
echo "16 clients, 1 client/core, 8g(bw) or 1g(iops) file size / client, 128k IO size"
echo "--------------------------------------------------------------------------------"
summarize_for_pattern "run_iozone_${npools}_pools_128k_*.log"
done
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment