Contents
File system
Generic
Tuning
( set -x -e -u -o pipefail || exit 1 test -f ./lustre.rc && . ./lustre.rc test -n "${FSNAME}" test -e "/mnt/lustre-${FSNAME}" test -e "/mnt/lustre-${FSNAME}/benchmarks" || sudo mkdir "/mnt/lustre-${FSNAME}/benchmarks" sudo lfs setstripe --count -1 --size 32M "/mnt/lustre-${FSNAME}/benchmarks" exit 0 )
dd
( set -x -e -u -o pipefail || exit 1 test -f ./lustre.rc && . ./lustre.rc test -n "${FSNAME}" test -e "/mnt/lustre-${FSNAME}/benchmarks" fid="${RANDOM}" test ! -e "/mnt/lustre-${FSNAME}/benchmarks/dd.${fid}" sudo dd if=/dev/zero of="/mnt/lustre-${FSNAME}/benchmarks/dd.${fid}" bs=16M count=1024 & wid="${!}" sleep 1s while test -e "/proc/${wid}" ; do sudo kill -USR1 "${wid}" || true ; sleep 1s ; done & wait sudo dd if="/mnt/lustre-${FSNAME}/benchmarks/dd.${fid}" of=/dev/null bs=16M & rid="${!}" sleep 1s while test -e "/proc/${rid}" ; do sudo kill -USR1 "${rid}" || true ; sleep 1s ; done & wait sudo rm "/mnt/lustre-${FSNAME}/benchmarks/dd.${fid}" exit 0 )
Bonnie
( set -x -e -u -o pipefail || exit 1 test -f ./lustre.rc && . ./lustre.rc test -n "${FSNAME}" test -e "/mnt/lustre-${FSNAME}/benchmarks" sudo bonnie -s 2048 -y -d "/mnt/lustre-${FSNAME}/benchmarks" exit 0 )
IOzone
Build
( set -x -e -u -o pipefail || exit 1 mkdir ./iozone-3.327 cd ./iozone-3.327 wget 'http://www.iozone.org/src/current/iozone3_327.tar' -O iozone3_327.tar md5sum -c <<<'3b5f8d7fcb5ba5bba139165c8d53f342 *./iozone3_327.tar' tar -xf ./iozone3_327.tar cd ./iozone3_327/src/current make linux-AMD64 mkdir -p /tmp/packages/iozone-3.327/bin cp ./iozone /tmp/packages/iozone-3.327/bin cd ../../../.. rm -Rf ./iozone-3.327 exit 0 )
Run
- parameters:
{ lustre_fsname=tests lustre_stripe_count=-1 lustre_stripe_size=4M iozone_file_min=64m iozone_file_max=16g iozone_record_min=64 iozone_record_max=16m iozone_tests='-i 0 -i 1 -i 2 -i 3 -i 4 -i 5 -i 8 -i 6 -i 7' iozone_extra='-E -I' }
- execution:
( set -x -e -u -o pipefail || exit 1 PATH="$PATH:/tmp/packages/iozone-3.327/bin" test -n "${lustre_fsname}" && test -n "${lustre_stripe_count}" && test -n "${lustre_stripe_size}" test -n "${iozone_file_min}" && test -n "${iozone_file_max}" && test -n "${iozone_record_min}" && test -n "${iozone_record_max}" test -n "${iozone_tests}" && test "${iozone_extra:-NONE}" != NONE test -e "/mnt/lustre-${lustre_fsname}" test ! -e "/mnt/lustre-${lustre_fsname}/benchmarks.iozone" sudo mkdir "/mnt/lustre-${lustre_fsname}/benchmarks.iozone" cd "/mnt/lustre-${lustre_fsname}/benchmarks.iozone" iozone_log="${HOME}/lustre.iozone.$( date '+%Y-%m-%d-%H-%M-%S' ).txt" echo >"${iozone_log}" echo "lfs setstripe --count ${lustre_stripe_count} --size ${lustre_stripe_size} ." >>"${iozone_log}" echo "iozone -R -a -+u ${iozone_extra} ${iozone_tests} -n ${iozone_file_min} -g ${iozone_file_max} -y ${iozone_record_min} -q ${iozone_record_max}" >>"${iozone_log}" echo >>"${iozone_log}" echo >>"${iozone_log}" sudo lfs setstripe --count "${lustre_stripe_count}" --size "${lustre_stripe_size}" . sudo iozone -R -a -+u ${iozone_extra} ${iozone_tests} -n "${iozone_file_min}" -g "${iozone_file_max}" -y "${iozone_record_min}" -q "${iozone_record_max}" \ | tee -a "${iozone_log}" cd sudo rmdir "/mnt/lustre-${lustre_fsname}/benchmarks.iozone" )
Network
Netperf
Build
( set -x -e -u -o pipefail || exit 1 mkdir ./netperf--2.4.5 cd ./netperf--2.4.5 wget 'http://downloads.openwrt.org/sources/netperf-2.4.5.tar.bz2' -O netperf-2.4.5.tar.bz2 md5sum -c <<<'5cfaae1d024551161b8eafbd48faedf4 *./netperf-2.4.5.tar.bz2' tar -xjf ./netperf-2.4.5.tar.bz2 cd ./netperf-2.4.5 ./configure --prefix=/tmp/packages/netperf--2.4.5 make make install cd ../.. rm -Rf ./netperf--2.4.5 exit 0 )
Environment
- variables:
{ PATH="$PATH:/tmp/packages/netperf--2.4.5/bin" #netperf_server=... netperf_type=TCP_STREAM netperf_control_port=30838 #netperf_data_port=... netperf_arguments_extra= }
- firewall:
( set -x -e -u -o pipefail || exit 1 sudo iptables -t filter -I INPUT 1 -p tcp --dport "${netperf_control_port}" -j ACCEPT sudo iptables -t filter -I INPUT 1 -p tcp --dport "${netperf_data_port}" -j ACCEPT sudo iptables -t filter -I INPUT 1 -p udp --dport "${netperf_data_port}" -j ACCEPT exit 0 )
Server
( set -x -e -u -o pipefail || exit 1 netserver -p "${netperf_control_port}" exit 0 )
Client
( set -x -e -u -o pipefail || exit 1 netperf \ -t "${netperf_type}" \ -4 -H "${netperf_server}" -p "${netperf_control_port}" \ -l 30 -f M exit 0 )
Iperf
Build
( set -x -e -u -o pipefail || exit 1 mkdir ./iperf--2.0.4 cd ./iperf--2.0.4 wget 'http://downloads.sourceforge.net/project/iperf/iperf/2.0.4%20source/iperf-2.0.4.tar.gz?use_mirror=garr' -O ./iperf-2.0.4.tar.gz md5sum -c <<<'8c5bc14cc2ea55f18f22afe3c23e3dcb *./iperf-2.0.4.tar.gz' tar -xzf ./iperf-2.0.4.tar.gz cd ./iperf-2.0.4 ./configure --prefix=/tmp/packages/iperf--2.0.4 make make install cd ../.. rm -Rf ./iperf--2.0.4 exit 0 )
Testing
Environment
- variables:
{ PATH="$PATH:/tmp/packages/iperf--2.0.4/bin" #iperf_server=... iperf_port=30838 }
- firewall:
( set -x -e -u -o pipefail || exit 1 sudo iptables -t filter -I INPUT 1 -p tcp --dport "${iperf_port}" -j ACCEPT sudo iptables -t filter -I INPUT 1 -p udp --dport "${iperf_port}" -j ACCEPT exit 0 )
Server
( set -x -e -u -o pipefail || exit 1 iperf \ --server --bind "${iperf_server}" --port "${iperf_port}" \ --format MBytes --print_mss exit 0 )
Client
( set -x -e -u -o pipefail || exit 1 iperf \ --client "${iperf_server}" --port "${iperf_port}" \ --time 30 --format MBytes --print_mss exit 0 )