[BACK]Return to run.bonnie_ops CVS log [TXT][DIR] Up to [Development] / xfs-cmds / xfstests

File: [Development] / xfs-cmds / xfstests / run.bonnie_ops (download)

Revision 1.4, Tue Sep 9 01:50:09 2003 UTC (14 years, 1 month ago) by fsgqa
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +14 -2 lines

Make bench script output clearer for people reading the output first thing in the morning. ;)

#!/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}

[ -z "$here" ] && here=`pwd`
. $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()
{
	sed -e 's/^..................../# /g' | awk '{print} END {print "#"}'
}

# 
# 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()
{
	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";
	'
}

if [ $# -gt 0 ]; then
	printf "%9s,%10s,%5s,%10s,%5s,%10s,%5s,%10s,%5s\n" files \
		seqCR/s scCPU seqRM/s srCPU randCR/s rcCPU randRM/s rrCPU
	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