[demos] Update iperf3/sysbench for benchmarks

This commit is contained in:
Zheng, Qi 2023-06-12 10:42:58 +08:00 committed by volcano
parent 423814f2cd
commit 2041c7531c
4 changed files with 131 additions and 0 deletions

@ -0,0 +1,47 @@
#! /bin/bash
set -e
CUR_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
TEST_TIME=${1:-60}
BUF_LEN=${2:-128K}
STREMS=${3:-8}
function iperf3_prepare()
{
./build.sh
}
function iperf3_run()
{
echo ""
echo "*** Doing iperf3 with ${STREMS} client streams in parallel ***"
echo "*** with read/write buffer length ${BUF_LEN} for ${TEST_TIME} seconds. ***"
pushd occlum_server
occlum run /bin/iperf3 -s -p 6777 -1 1>/dev/null &
popd
sleep 3
pushd occlum_client
occlum run /bin/iperf3 -c 127.0.0.1 -p 6777 -f Mbits \
-P ${STREMS} -t ${TEST_TIME} -l ${BUF_LEN} | tee output.txt
popd
}
function iperf3_result()
{
output="occlum_client/output.txt"
SENDER_RES=$(grep "SUM" ${output} | grep "sender" | awk '{print $6}')
RECV_RES=$(grep "SUM" ${output} | grep "receiver" | awk '{print $6}')
jq --argjson sender $SENDER_RES --argjson recv $RECV_RES \
'(.[] | select(.extra == "sender") | .value) |= $sender |
(.[] | select(.extra == "receiver") | .value) |= $recv' \
result_template.json > result.json
}
iperf3_prepare
iperf3_run
iperf3_result

@ -0,0 +1,14 @@
[
{
"name": "Sender Average Rate",
"unit": "Mbits/sec",
"value": 0,
"extra": "sender"
},
{
"name": "Receiver Average Rate",
"unit": "Mbits/sec",
"value": 0,
"extra": "receiver"
}
]

@ -0,0 +1,26 @@
[
{
"name": "Threads Minimum latency",
"unit": "ms",
"value": 0,
"extra": "min"
},
{
"name": "Threads Average Latency",
"unit": "ms",
"value": 0,
"extra": "avg"
},
{
"name": "Threads Maximum Latency",
"unit": "ms",
"value": 0,
"extra": "max"
},
{
"name": "Thread 95th Percentile Latency",
"unit": "ms",
"value": 0,
"extra": "per95"
}
]

@ -0,0 +1,44 @@
#! /bin/bash
set -e
CUR_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
TEST_TIME=${1:-60}
TEST_THREADS=${2:-200}
function sysbench_prepare()
{
./dl_and_build.sh
./prepare_sysbench.sh
}
function sysbench_run()
{
echo ""
echo "*** Doing sysbench with ${TEST_THREADS} threads for ${TEST_TIME} seconds ***"
pushd occlum_instance
occlum run /bin/sysbench threads \
--threads=${TEST_THREADS} --thread-yields=100 \
--thread-locks=4 --time=${TEST_TIME} run | tee output.txt
popd
}
function sysbench_result()
{
output="occlum_instance/output.txt"
MIN=$(grep "min:" ${output} | awk '{print $NF}')
AVG=$(grep "avg:" ${output} | awk '{print $NF}')
MAX=$(grep "max:" ${output} | awk '{print $NF}')
PER95=$(grep "95th" ${output} | awk '{print $NF}')
jq --argjson min $MIN --argjson avg $AVG --argjson max $MAX --argjson per95 $PER95 \
'(.[] | select(.extra == "min") | .value) |= $min |
(.[] | select(.extra == "avg") | .value) |= $avg |
(.[] | select(.extra == "max") | .value) |= $max |
(.[] | select(.extra == "per95") | .value) |= $per95' \
result_template.json > result.json
}
sysbench_prepare
sysbench_run
sysbench_result