#SIZE=10240 #SIZE=2048 SIZE="$1" COUNT=3 WRITES="0" for i in $(seq 1 $COUNT) do echo -ne "write $i:\t" sync echo 3 > /proc/sys/vm/drop_caches CMD="time -p sh -c \"dd if=/dev/zero of=disk.img bs=1M count=$SIZE ; sync\" 2> /dev/null" OUTPUT=$(sh -c "$CMD" 2>&1 | grep real | awk '{print $2}') echo "$OUTPUT" WRITES="$WRITES+$OUTPUT" done echo echo -e "average: \t$(echo "scale=2;($WRITES)/$COUNT" | bc)" echo -e "MB/s:\t\t$(echo "scale=1;$SIZE/(($WRITES)/$COUNT)" | bc)" echo echo READS="0" for i in $(seq 1 $COUNT) do echo -ne "read $i: \t" sync echo 3 > /proc/sys/vm/drop_caches CMD="time -p sh -c \"dd if=disk.img of=/dev/null bs=1M count=$SIZE ; sync\" 2> /dev/null" OUTPUT=$(sh -c "$CMD" 2>&1 | grep real | awk '{print $2}') echo "$OUTPUT" READS="$READS+$OUTPUT" done echo echo -e "average: \t$(echo "scale=2;($READS)/$COUNT" | bc)" echo -e "MB/s:\t\t$(echo "scale=1;$SIZE/(($READS)/$COUNT)" | bc)"