mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-24 22:43:05 +00:00
metrics: Add compare virtiofsd dax script
This PR adds the compare virtiofsd dax script for kata metrics. Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
This commit is contained in:
parent
5e937fa622
commit
a5d4e33880
151
tests/metrics/storage/fio-k8s/scripts/compare-virtiofsd-dax.sh
Normal file
151
tests/metrics/storage/fio-k8s/scripts/compare-virtiofsd-dax.sh
Normal file
@ -0,0 +1,151 @@
|
||||
#!/bin/bash
|
||||
#Copyright (c) 2021-2023 Intel Corporation
|
||||
#
|
||||
#SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
set -o errtrace
|
||||
|
||||
script_dir=$(dirname "$(readlink -f "$0")")
|
||||
|
||||
runtime_path="/usr/local/bin/kata-runtime"
|
||||
kata_config_path="/usr/share/defaults/kata-containers/configuration.toml"
|
||||
|
||||
results_dir="$(realpath ./)/results"
|
||||
|
||||
KATA_RUNTIME="${KATA_RUNTIME_CLASS:-kata}"
|
||||
BAREMETAL_RUNTIME="runc"
|
||||
RUNTIME_CLASS=""
|
||||
|
||||
FIO_SIZE="${FIO_SIZE:-500M}"
|
||||
FIO_BLOCKSIZE="${FIO_BLOCKSIZE:-4K}"
|
||||
VIRTIOFS_DAX_SIZE=${VIRTIOFS_DAX_SIZE:-600M}
|
||||
|
||||
# set the base case for virtiofsd
|
||||
set_base_virtiofs_config() {
|
||||
# Running kata-qemu-virtiofs
|
||||
# Defaults for virtiofs
|
||||
sudo crudini --set --existing "$kata_config_path" hypervisor.qemu virtio_fs_cache '"auto"'
|
||||
sudo crudini --set --existing "$kata_config_path" hypervisor.qemu virtio_fs_cache_size ${VIRTIOFS_DAX_SIZE}
|
||||
}
|
||||
|
||||
## helper function: get name of current bash function
|
||||
fn_name() {
|
||||
echo "${FUNCNAME[1]}"
|
||||
}
|
||||
|
||||
# directory where results are stored
|
||||
get_results_dir() {
|
||||
local test_name
|
||||
local test_result_dir
|
||||
test_name="${1}"
|
||||
test_result_dir="${results_dir}/${test_name}"
|
||||
mkdir -p "${test_result_dir}"
|
||||
echo "${test_result_dir}"
|
||||
}
|
||||
|
||||
# Collect kata env
|
||||
# save kata config toml
|
||||
# save output from kata-env
|
||||
kata_env() {
|
||||
local suffix=${1}
|
||||
local config_path
|
||||
local kata_env_bk
|
||||
local kata_config_bk
|
||||
kata_env_bk="$(get_results_dir "${suffix}")/kata-env.toml"
|
||||
kata_config_bk="$(get_results_dir "${suffix}")/kata-config.toml"
|
||||
|
||||
${runtime_path} kata-env >"${kata_env_bk}"
|
||||
config_path="$(${runtime_path} kata-env --json | jq .Runtime.Config.Path -r)"
|
||||
cp "${config_path}" "${kata_config_bk}"
|
||||
}
|
||||
|
||||
# Collect the command used by virtiofsd
|
||||
collect_qemu_virtiofs_cmd() {
|
||||
local rdir
|
||||
local test_name
|
||||
test_name="${1}"
|
||||
|
||||
rdir=$(get_results_dir "${test_name}")
|
||||
# TODO
|
||||
}
|
||||
|
||||
# Run metrics runner
|
||||
run_workload() {
|
||||
local test_name
|
||||
local test_result_file
|
||||
local test_result_dir
|
||||
|
||||
test_name="${1}"
|
||||
|
||||
test_result_dir="$(get_results_dir "${test_name}")"
|
||||
test_result_file="${test_result_dir}/test-out.txt"
|
||||
|
||||
echo "Running for kata config: ${test_name}"
|
||||
collect_qemu_virtiofs_cmd "$test_name"
|
||||
|
||||
fio_runner_dir="${script_dir}/../../cmd/fiotest/"
|
||||
fio_jobs="${script_dir}/../../configs/test-config/"
|
||||
make -C "${fio_runner_dir}" build
|
||||
pwd
|
||||
set -x
|
||||
"${fio_runner_dir}fio-k8s" \
|
||||
--debug \
|
||||
--fio.size "${FIO_SIZE}" \
|
||||
--fio.block-size "${FIO_BLOCKSIZE}" \
|
||||
--container-runtime "${RUNTIME_CLASS}" \
|
||||
--test-name "${test_name}" \
|
||||
--output-dir "$(dirname ${test_result_dir})" \
|
||||
"${fio_jobs}" |
|
||||
tee \
|
||||
"${test_result_file}"
|
||||
set +x
|
||||
}
|
||||
|
||||
pool_0_cache_auto_dax() {
|
||||
local suffix="$(fn_name)"
|
||||
|
||||
set_base_virtiofs_config
|
||||
sudo crudini --set --existing "$kata_config_path" hypervisor.qemu virtio_fs_extra_args '["--thread-pool-size=0","-o","no_posix_lock","-o","xattr"]'
|
||||
sudo crudini --set --existing "$kata_config_path" hypervisor.qemu virtio_fs_cache '"auto"'
|
||||
sudo crudini --set --existing "$kata_config_path" hypervisor.qemu virtio_fs_cache_size 1024
|
||||
kata_env "${suffix}"
|
||||
RUNTIME_CLASS="${KATA_RUNTIME}"
|
||||
run_workload "${suffix}"
|
||||
}
|
||||
|
||||
pool_0_cache_auto_no_dax() {
|
||||
local suffix="$(fn_name)"
|
||||
|
||||
set_base_virtiofs_config
|
||||
sudo crudini --set --existing "$kata_config_path" hypervisor.qemu virtio_fs_extra_args '["--thread-pool-size=0","-o","no_posix_lock","-o","xattr"]'
|
||||
sudo crudini --set --existing "$kata_config_path" hypervisor.qemu virtio_fs_cache '"auto"'
|
||||
sudo crudini --set --existing "$kata_config_path" hypervisor.qemu virtio_fs_cache_size 0
|
||||
|
||||
kata_env "${suffix}"
|
||||
|
||||
RUNTIME_CLASS="${KATA_RUNTIME}"
|
||||
run_workload "${suffix}"
|
||||
echo "done"
|
||||
}
|
||||
|
||||
k8s_baremetal() {
|
||||
local suffix="$(fn_name)"
|
||||
|
||||
RUNTIME_CLASS="${BAREMETAL_RUNTIME}"
|
||||
run_workload "${suffix}"
|
||||
}
|
||||
|
||||
main() {
|
||||
|
||||
mkdir -p "${results_dir}"
|
||||
|
||||
k8s_baremetal
|
||||
pool_0_cache_auto_dax
|
||||
pool_0_cache_auto_no_dax
|
||||
}
|
||||
|
||||
main $*
|
Loading…
Reference in New Issue
Block a user