set -e # requires: blogbench + sysbench THREADS=8 chapter() { echo "${1}" printf %s "${1}" | tr -c '=' '[=*]' echo echo } section() { echo "${1}" printf %s "${1}" | tr -c '-' '[-*]' echo echo } run_command() { local cmd="${1}" echo -n 'Running `' echo -n "${cmd}" echo -n '`:' echo echo echo '~~~' ${cmd} echo '~~~' echo } b_system_info() { chapter System section dmesg run_command "dmesg" section "uname" run_command "uname -a" if [ `uname` = "FreeBSD" ]; then section "ZFS settings" run_command "zfs get all /usr/obj" section "geli" run_command "geli list" fi } b_blogbench() { chapter "blogbench" for run in 1 2 3; do section "blogbench (#${run})" rm -rf /usr/obj/bb${run} mkdir -p /usr/obj/bb${run} run_command "blogbench -d /usr/obj/bb${run}" done for run in 1 2 3; do rm -rf /usr/obj/bb${run} done } b_sysbench_fileio() { chapter "sysbench fileio" rm -rf /usr/obj/fileio mkdir /usr/obj/fileio for mode in seqwr seqrewr seqrd rndrd rndwr rndrw; do cd /usr/obj/fileio sysbench fileio prepare 2>/dev/null >/dev/null section "sysbench fileio (${mode})" run_command "sysbench --threads=${THREADS} fileio run --file-test-mode=${mode}" sysbench fileio cleanup 2>/dev/null >/dev/null done } b_sysbench_memory() { chapter "sysbench memory" for oper in read write; do for mode in seq rnd; do section "sysbench memory (${oper}, ${mode})" run_command "sysbench --threads=${THREADS} memory run --memory-oper=${oper} --memory-access-mode=${mode}" done done } b_sysbench_cpu() { chapter "sysbench cpu" run_command "sysbench --threads=${THREADS} cpu run" } b_sysbench_threads() { chapter "sysbench threads" run_command "sysbench --threads=${THREADS} threads run" } b_sysbench_mutex() { chapter "sysbench mutex" run_command "sysbench --threads=${THREADS} mutex run" } b_system_info b_blogbench b_sysbench_fileio b_sysbench_cpu b_sysbench_memory b_sysbench_threads b_sysbench_mutex