2002-11-09 05:49:41 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
#
|
|
|
|
|
# Do a bonnie++ create/read/delete run using 8192 files (unless
|
|
|
|
|
# BONNIE_KFILES environment variable is set -- note this number
|
|
|
|
|
# is multiplied by 1024 by bonnie++). By default the files are
|
|
|
|
|
# created in the same directory, BONNIE_NDIRS specifies a count
|
|
|
|
|
# of subdirs to evenly spread files through. Regular files are
|
|
|
|
|
# created by default (BONNIE_FILETYPE=regular), alternatively
|
|
|
|
|
# the values "symlinks" and "hardlinks" can be used.
|
|
|
|
|
#
|
|
|
|
|
# The script then massages the output into CSV format with the
|
|
|
|
|
# human-readable output preceding it as a "comment" (#-prefixed).
|
|
|
|
|
#
|
|
|
|
|
BONNIE_NDIRS=${BONNIE_NDIRS:=1}
|
|
|
|
|
BONNIE_KFILES=${BONNIE_KFILES:=8}
|
|
|
|
|
BONNIE_FILETYPE=${BONNIE_FILETYPE:=regular}
|
|
|
|
|
|
2003-09-09 01:50:09 +00:00
|
|
|
[ -z "$here" ] && here=`pwd`
|
2002-11-09 05:49:41 +00:00
|
|
|
. $here/common.bonnie
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Sample bonnie throughput output (stderr):
|
|
|
|
|
#Version 1.02c ------Sequential Create------ --------Random Create--------
|
|
|
|
|
# -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
|
|
|
|
|
# files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
|
|
|
|
|
# 4 525 27 +++++ +++ 517 26 526 25 +++++ +++ 230 12
|
|
|
|
|
# [ Note: the "files" can also be "^files:max" and possibly other things ]
|
|
|
|
|
filter_stderr()
|
|
|
|
|
{
|
2002-11-09 20:13:42 +00:00
|
|
|
sed -e 's/^..................../# /g' | awk '{print} END {print "#"}'
|
2002-11-09 05:49:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# Sample bonnie IOPs output (stdout):
|
|
|
|
|
# ",,,,,,,,,,,,,,4,525,27,+++++,+++,517,26,526,25,+++++,+++,230,12"
|
|
|
|
|
# [ nathans note: always get +++ due to 0:0 for min:max file sizes. ]
|
|
|
|
|
# [ I will need to fix the filter if I ever start using file sizes. ]
|
|
|
|
|
#
|
|
|
|
|
filter_stdout()
|
|
|
|
|
{
|
2003-09-09 01:50:09 +00:00
|
|
|
perl -ne '
|
|
|
|
|
chomp;
|
|
|
|
|
s/\+*//g; s/,+/,/g; s/^,//; s/,$//;
|
|
|
|
|
@values = split /,/;
|
|
|
|
|
printf "%9s", 1024 * shift @values;
|
|
|
|
|
for ($i = 0; $i <= $#values; $i++) {
|
|
|
|
|
if ($i % 2) { printf ",%4s%%", $values[$i] }
|
|
|
|
|
else { printf ",%10s", $values[$i] }
|
|
|
|
|
}
|
|
|
|
|
printf "\n";
|
|
|
|
|
'
|
2002-11-09 05:49:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if [ $# -gt 0 ]; then
|
2003-09-09 01:50:09 +00:00
|
|
|
printf "%9s,%10s,%5s,%10s,%5s,%10s,%5s,%10s,%5s\n" files \
|
|
|
|
|
seqCR/s scCPU seqRM/s srCPU randCR/s rcCPU randRM/s rrCPU
|
2002-11-09 05:49:41 +00:00
|
|
|
exit 0
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
case "$BONNIE_FILETYPE"
|
|
|
|
|
in
|
|
|
|
|
regular) BONNIE_FILETYPE=0 ;;
|
|
|
|
|
symlink) BONNIE_FILETYPE=-2 ;;
|
|
|
|
|
hardlink) BONNIE_FILETYPE=-1 ;;
|
|
|
|
|
*) echo "BONNIE_FILETYPE has an unrecognised value" && exit 1 ;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
run_bonnie -s 0 -n $BONNIE_KFILES:$BONNIE_FILETYPE:0:$BONNIE_NDIRS
|