mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-11 04:42: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