mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-09 11:58:16 +00:00
metrics: Add sysbench performance test
This PR adds the sysbench performance test for kata CI. Fixes #7485 Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
This commit is contained in:
parent
e8f8641988
commit
1512560111
81
tests/metrics/density/k8s-sysbench.sh
Executable file
81
tests/metrics/density/k8s-sysbench.sh
Executable file
@ -0,0 +1,81 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2022-2023 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
SCRIPT_PATH=$(dirname "$(readlink -f "$0")")
|
||||
|
||||
source "${SCRIPT_PATH}/../../.ci/lib.sh"
|
||||
source "${SCRIPT_PATH}/../lib/common.bash"
|
||||
sysbench_file=$(mktemp sysbenchresults.XXXXXXXXXX)
|
||||
TEST_NAME="${TEST_NAME:-sysbench}"
|
||||
CI_JOB="${CI_JOB:-}"
|
||||
IMAGE="docker.io/library/local-sysbench:latest"
|
||||
DOCKERFILE="${SCRIPT_PATH}/sysbench-dockerfile/Dockerfile"
|
||||
|
||||
function remove_tmp_file() {
|
||||
rm -rf "${sysbench_file}"
|
||||
}
|
||||
|
||||
trap remove_tmp_file EXIT
|
||||
|
||||
function sysbench_memory() {
|
||||
kubectl exec -i "$pod_name" -- sh -c "sysbench memory --threads=2 run" > "${sysbench_file}"
|
||||
metrics_json_init
|
||||
local memory_latency_sum=$(cat "$sysbench_file" | grep sum | cut -f2 -d':' | sed 's/[[:blank:]]//g')
|
||||
metrics_json_start_array
|
||||
local json="$(cat << EOF
|
||||
{
|
||||
"memory-latency-sum": {
|
||||
"Result" : $memory_latency_sum,
|
||||
"Units" : "ms"
|
||||
}
|
||||
}
|
||||
EOF
|
||||
)"
|
||||
metrics_json_add_array_element "$json"
|
||||
metrics_json_end_array "Results"
|
||||
metrics_json_save
|
||||
}
|
||||
|
||||
function sysbench_start_deployment() {
|
||||
cmds=("bc" "jq")
|
||||
check_cmds "${cmds[@]}"
|
||||
|
||||
# Check no processes are left behind
|
||||
check_processes
|
||||
|
||||
if [ -z "${CI_JOB}" ]; then
|
||||
# Start kubernetes
|
||||
start_kubernetes
|
||||
fi
|
||||
|
||||
export KUBECONFIG="$HOME/.kube/config"
|
||||
export pod_name="test-sysbench"
|
||||
|
||||
kubectl create -f "${SCRIPT_PATH}/runtimeclass_workloads/sysbench-pod.yaml"
|
||||
kubectl wait --for=condition=Ready --timeout=120s pod "$pod_name"
|
||||
|
||||
}
|
||||
|
||||
function sysbench_cleanup() {
|
||||
kubectl delete pod "$pod_name"
|
||||
if [ -z "${CI_JOB}" ]; then
|
||||
end_kubernetes
|
||||
check_processes
|
||||
fi
|
||||
}
|
||||
|
||||
function main() {
|
||||
init_env
|
||||
sysbench_start_deployment
|
||||
sysbench_memory
|
||||
sysbench_cleanup
|
||||
}
|
||||
|
||||
main "$@"
|
Loading…
Reference in New Issue
Block a user