#!/bin/csh
# %Z%%M% %I% %E%
#
# Date: August 7, 1990
# Author: Robin Miller
#
# Script file to gather disk performance data.
#
# Arguments:
# $1 The data file name.
# $2 The log file name.
# $3 The raw disk device.
# $4 The data file limit.
# $5 The block size(s).
# $6 The pass count.
# $7 Enable debug flag.
#
set DATA_FILE=$1
set LOG_FILE=$2
set RAW_DEVICE=$3
set DATA_LIMIT=$4
set BLOCK_SIZES=$5
set PASS_COUNT=$6
set DEBUG_FLAG=$7
#
if ($DATA_FILE == '') then
echo "Usage: dts data_file [ log_file raw_device data_file_limit block_sizes pass_count debug ]";
echo "Example: dts /usr/tmp/dt.data rrz11a.log rrz11a 10m &"
exit 1
endif
if ($DATA_FILE == '') then
set DATA_FILE=`pwd`/dt.data
endif
if ($LOG_FILE == '') then
set LOG_FILE=dts.log
endif
if ($DATA_LIMIT == '') then
set DATA_LIMIT=50m
endif
if ($BLOCK_SIZES == '') then
set BLOCK_SIZES="8k 16k 32k 64k 128k"
endif
#
# The default is 2 passes to test buffer cache effect.
#
if ($PASS_COUNT == '') then
set PASS_COUNT=2
endif
#
# Setup the debug options:
# Default: dump - dumps buffers on compare errors.
#
if ($DEBUG_FLAG == 'none') then
set DEBUG_OPTS=""
else if ($DEBUG_FLAG == 'debug') then
set DEBUG_OPTS="enable=coredump,debug,dump"
else
set DEBUG_OPTS="enable=dump"
endif
#
# Test through the Unix file system first.
#
rm -f $LOG_FILE ; rm -f $DATA_FILE
date > $LOG_FILE
echo "" >> $LOG_FILE
#df >>& $LOG_FILE
#echo "" >> $LOG_FILE
foreach bs ($BLOCK_SIZES)
set cmd_line="dt of=$DATA_FILE disable=compare limit=$DATA_LIMIT bs=$bs log=$LOG_FILE passes=$PASS_COUNT $DEBUG_OPTS"
echo $cmd_line >> $LOG_FILE
$cmd_line
set exit_status=$status
if ($exit_status) then
file $DEVICE
echo "" >> $LOG_FILE
date >> $LOG_FILE
echo "" >> $LOG_FILE
exit ($exit_status)
endif
echo "" >> $LOG_FILE
echo "*** End of Test ***" >> $LOG_FILE
echo "" >> $LOG_FILE
end
#
# Now test the raw device (entire disk usually).
#
if ($RAW_DEVICE != '') then
if (`dirname $RAW_DEVICE` != '/dev') then
set RAW_DEVICE=/dev/$RAW_DEVICE
endif
set cmd_line="dt if=$RAW_DEVICE disable=compare limit=5g bs=64k log=$LOG_FILE passes=$PASS_COUNT $DEBUG_OPTS"
echo $cmd_line >> $LOG_FILE
$cmd_line
set exit_status=$status
endif
date >> $LOG_FILE
syntax highlighted by Code2HTML, v. 0.9.1