Open main menu

CDOT Wiki β

Winter 2009 SYA810 Block Device Benchmark Scripts

Please post your block device benchmark script here. I'm looking for a wide range of benchmark methodologies, so your script should test in a different way than the other scripts.

P. Constantino

#!/bin/bash
# This script generate random numbers and seeks to that POSITION on the block device given, reading 1 kb of data at the time. 
# The purpose is test the speed of randomly reading 1024(default) blocks of 1KB from the disk.
# A valid input for BLOCK DEVICE could be: /dev/sdb (disk) - /dev/sda9 (partition) - /dev/md8 (RAID) - /dev/mapper/foo/bar (LV).
echo -n "Enter a number of block to read. Enter for default(1024): "
read BLOCKS 
if [ "$BLOCKS" = "" ]
then
   BLOCKS=1024
fi
echo -n "Enter a valid block device (dev/): "
read BLOCKDEVICE
SIZE=$(df /dev/$BLOCKDEVICE | awk '{print $3}' | grep -v 'Used')
time -p for ((x=1; x<=$BLOCKS; x++))
	do 
		POSITION=$(( RANDOMĀ % $SIZE + 1))
		dd if=/dev/$BLOCKDEVICE of=/dev/null bs=1k count=1 seek=$POSITION
		sync
		echo 3 >/proc/sys/vm/drop_caches
	done	
echo "  ^ time to process randomly $BLOCKS blocks of 1KB on /dev/$BLOCKDEVICE."

Katherine Masseau

Nestor CHAN

Mohak Vyas

Varinder Singh

Python Performance Scripts

Script in Python.Any suggestions would be welcome


Kezhong Liang

#!/bin/bash
echo "Start to test ..."
TIME_WRITE_START=$(date +%s)
dd if=/dev/zero of=test bs=1024 count=1000000
sync
TIME_WRITE_END=$(date +%s)
echo 3 > /proc/sys/vm/drop_caches
sync
TIME_READ_START=$(date +%s)
dd if=test of=/dev/null bs=1024 count=1000000
TIME_READ_END=$(date +%s)
rm test
echo "--------------------------------------------------------"
TIME_WRITE_USED=$(($TIME_WRITE_END - $TIME_WRITE_START))
echo -n "The write disk performance: "
echo -n $((1024 / $TIME_WRITE_USED))
echo " MB/sec"
TIME_READ_USED=$(($TIME_READ_END - $TIME_READ_START))
echo -n "The read disk performance: "
echo -n $((1024 / $TIME_READ_USED))
echo " MB/sec"

Milton Paiva Neto

#!/bin/bash
#
# Script first written by Nestor Chan - Bossanesta and modified by Milton Paiva Neto <milton.paiva@gmail.com>
# Create 10 files with one with 10 GBs fully of zeros

time -p (for ((x=1; x<=10; x++))
do
       dd if=/dev/zero of=fakefile$x bs=1G count=10; 
done
sync
)

LINKS