45 lines
1.2 KiB
Bash
Executable File
45 lines
1.2 KiB
Bash
Executable File
#! /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
|