13
0

adjust run-readtest.sh so that it can be used as-is for testing multiple blocksizes

This commit is contained in:
Paul Davis 2015-01-22 11:27:49 -05:00
parent a2e77c0c4e
commit 95660a06e2

View File

@ -5,8 +5,8 @@ filesize=100 # megabytes
numfiles=128 numfiles=128
nocache= nocache=
interleave= interleave=
blocksize=262144
needfiles=1 needfiles=1
write_blocksize=262144
if uname -a | grep --silent arwin ; then if uname -a | grep --silent arwin ; then
ddmega=m ddmega=m
@ -20,7 +20,7 @@ while [ $# -gt 1 ] ; do
-f) filesize=$2; shift; shift ;; -f) filesize=$2; shift; shift ;;
-n) numfiles=$2; shift; shift ;; -n) numfiles=$2; shift; shift ;;
-N) nocache="-s"; shift; shift ;; -N) nocache="-s"; shift; shift ;;
-b) blocksize=$2; shift; shift ;; *) break ;;
esac esac
done done
@ -40,6 +40,7 @@ else
fi fi
if [ x$needfiles != x ] ; then if [ x$needfiles != x ] ; then
echo "Building files for test..."
if [ x$interleave = x ] ; then if [ x$interleave = x ] ; then
# #
@ -47,13 +48,12 @@ if [ x$needfiles != x ] ; then
# #
for i in `seq 1 $numfiles` ; do for i in `seq 1 $numfiles` ; do
dd of=$dir/testfile_$i if=/dev/zero bs=1$ddmega count=$filesize dd of=$dir/testfile_$i if=/dev/zero bs=1$ddmega count=$filesize >/dev/null 2>&1
echo $i
done done
else else
# #
# Create files interleaved, adding $blocksize to each # Create files interleaved, adding $write_blocksize to each
# file in turn. # file in turn.
# #
@ -61,25 +61,26 @@ if [ x$needfiles != x ] ; then
limit=`expr $filesize * 1048576` limit=`expr $filesize * 1048576`
while [ $size -lt $limit ] ; do while [ $size -lt $limit ] ; do
for i in `seq 1 $numfiles` ; do for i in `seq 1 $numfiles` ; do
dd if=/dev/zero bs=$blocksize count=1 >> $dir/testfile_$i dd if=/dev/zero bs=$write_blocksize count=1 >> $dir/testfile_$i >/dev/null 2>&1
done done
size=`expr $size + $blocksize` size=`expr $size + $write_blocksize`
echo "Files now @ $size bytes"
done done
fi fi
fi fi
if uname -a | grep --silent arwin ; then for bs in $@ ; do
# clears cache on OS X
sudo purge
elif [ -f /proc/sys/vm/drop_cache ] ; then
# Linux cache clearing
echo 3 | sudo tee /proc/sys/vm/drop/cache >/dev/null
else
# need an alternative for other operating systems
:
fi
echo "Ready to run ..." if uname -a | grep --silent arwin ; then
# clears cache on OS X
sudo purge
elif [ -f /proc/sys/vm/drop_cache ] ; then
# Linux cache clearing
echo 3 | sudo tee /proc/sys/vm/drop/cache >/dev/null
else
# need an alternative for other operating systems
:
fi
./readtest $nocache -b $blocksize -q $dir/testfile_%d echo "Blocksize $bs"
./readtest $nocache -b $bs -q $dir/testfile_%d
done