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
)