#!/bin/sh TESTHOME=/usr/tmp/geom_test READ_DD_BS=$((32 * 1024 * 1024)) READ_DD_COUNT=1 #RAIDTEST_SECOR_SIZE=512 #RAIDTEST_MEDIA_SIZE=$((32 * 1024 * 1024)) RAIDTEST_NUMBER_PROCS=8 mkid() { printf '%02d' ${1} } get_speed_from_dd() { sed -nE 's|.*\(([0-9]+) bytes/sec\).*|\1|p' } dev_read_speed_dd() { device=${1} dd if=${device} of=/dev/null \ bs=${READ_DD_BS} count=${READ_DD_COUNT} 2>&1 \ |get_speed_from_dd } get_speed_from_raidtest() { sed -nE 's|^Bytes per second: ([0-9]+)$|\1|p' } dev_read_speed_raidtest() { device=${1} raidtest test -r -d ${device} -n ${RAIDTEST_NUMBER_PROCS} \ |get_speed_from_raidtest } dev_read_speed() { device=${1} measurements_cnt=${2} speed_sum=0 i=0 while [ ${i} -lt ${measurements_cnt} ] ; do #speed=`dev_read_speed_dd ${device}` speed=`dev_read_speed_raidtest ${device}` speed_sum=$((${speed_sum} + ${speed})) i=$((${i} + 1)) done echo $((${speed_sum} / ${measurements_cnt})) } raid_speed() { providers_cnt=${1} raid_create=${2} raid_destroy=${3} providers="" i=0 while [ ${i} -lt ${providers_cnt} ] ; do providers="${providers} /dev/ggate1`mkid ${i}`" i=$((${i} + 1)) done raid_name=`${raid_create} "${providers}"` dev_read_speed ${raid_name} 2 ${raid_destroy} ${raid_name} } # EOF