occlum/demos/benchmarks/fio/run_fio_on_occlum.sh
2022-11-30 21:25:32 +08:00

41 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
set -e
GREEN='\033[1;32m'
NC='\033[0m'
SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
bomfile=${SCRIPT_DIR}/fio.yaml
FIO=fio
FIO_CONFIG=$1
if [ ! -e ${SCRIPT_DIR}/fio_src/${FIO} ];then
echo "Error: cannot stat '${FIO} in fio_src'"
echo "Please see README and build the ${FIO}"
exit 1
fi
if [ ! -e ${SCRIPT_DIR}/configs/${FIO_CONFIG} ] || [ -z ${FIO_CONFIG} ];then
echo "Error: cannot stat '${FIO_CONFIG}' in configs"
echo "Please copy it into configs first"
exit 1
fi
# 1. Init Occlum instance
rm -rf occlum_instance && occlum new occlum_instance
cd occlum_instance
TCS_NUM=$(($(nproc) * 2))
new_json="$(jq --argjson THREAD_NUM ${TCS_NUM} '.resource_limits.max_num_of_threads = $THREAD_NUM ' Occlum.json)" && \
echo "${new_json}" > Occlum.json
# 2. Copy files into Occlum instance and build
rm -rf image
copy_bom -f $bomfile --root image --include-dir /opt/occlum/etc/template
occlum build
# 3. Run the program
echo -e "${GREEN}occlum run /bin/${FIO} /configs/${FIO_CONFIG}${NC}"
occlum run /bin/${FIO} "/configs/${FIO_CONFIG}"