From fce51b9b093066f4efdcce85727eef6f3a1b4565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20=C3=98verby?= Date: Mon, 13 Jan 2025 19:30:17 +0100 Subject: [PATCH] First bench.sh --- bench.sh | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 bench.sh diff --git a/bench.sh b/bench.sh new file mode 100644 index 0000000..2fc1acb --- /dev/null +++ b/bench.sh @@ -0,0 +1,61 @@ +#!/bin/sh + +mode=$1 +dest=$2 + +usage() { + echo "Usage: ${0} <'connect'|'send'|'receive'> " + exit +} + +if [ ! "$mode" ] ; then + echo 'Mode not specified!' + usage +fi + +if [ ! "$dest" ] ; then + echo 'Dest not specified!' + usage +fi + +case "$mode" in +'connect') + prefix='' + command='echo -n' + ;; +'send') + prefix='dd if=/dev/zero bs=4k count=256 | ' + command='cat > /dev/null' + ;; +'receive') + prefix='' + command='dd if=/dev/zero bs=4k count=256' + ;; +*) + echo "Mode must be one of connect, send, receive" + usage + ;; +esac + +mkdir -p "$dest" +for m in $(cat macs) ; do + for c in $(cat ciphers) ; do + for k in $(cat kex) ; do + echo + echo "${dest}/${mode}__${m}__${c}__${k}.log" + $prefix /usr/bin/time ssh -o MACs=$m -o Ciphers=$c -o KexAlgorithms=$k $dest "${command}" 2>&1 >/dev/null | + tee -a "${dest}/${mode}__${m}__${c}__${k}.log" + sleep 0.1 || break + done + sleep 0.1 || break + done + sleep .01 || break +done + +( + echo 'Mode MAC Cipher KEX Time' + for f in ${dest}/*.log ; do + echo -n "$f " + cut -f 2 -w < $f | awk '{s+=$0}END{print s/NR}' RS=" " + done | sort -gk 2 | head -10 | tr '_' ' ' +) | column -t