ディスク性能チェックスクリプト

ディスク性能試験は、1ファイルサイズあたり100ファイルの生成を255回繰り返す方法としている。

スクリプトは下記の通り。

スクリプトの概要は、/dev/urandom より乱数ファイルをメモリディスク上に生成し、それを読みだして書込みデータとしている。また、同じ内容のファイルとならないように、書込み毎に読出し開始位置をずらしている。

スクリプトの引数は、6つあり、順番に
・容量(MB)
・書出しファイル名
・書出しパス
・ログ識別名
・開始サイクル数
・データ識別
となっている。ログ識別名、データ識別名は何でもよい。


#!/bin/tcsh
echo "target:$6"
set x=$5
set n=1
mkdir -p ~/PerfomanceTest/$4/$6/$2

if ( ! -d ${3} ) then
mkdir -p ${3}
endif

if ( ! -d ${3}/${2} ) then
mkdir -p ${3}/${2}
endif

@ seedsz = $1 + 110
echo $seedsz
set suffix = `echo $3 | awk -F '/' '{print $(NF)}'`
dd if=/dev/urandom of=/dev/shm/seed.dat bs=1M count=$seedsz
echo "Make Seed data finished"

loop:
loop2:
set fn = `printf "%.3d" $n`
set period = `printf "%.3d" $x`
echo -n "Write to $3/$2/$fn.dat Size $2 ${x}th Period ( $n / 100 ) "
dd if=/dev/shm/seed.dat of=$3/$2/$fn.dat bs=1M count=$1 skip=$n |& grep copi | awk '{print $1,$6,$8}' | tee -a ~/PerfomanceTest/$4/$6/$2/$period.log

@ n ++
if ($n < 100) then
goto loop2
endif

set n=1
@ x ++
if ($x > 255) then
exit
else
goto loop
endif