This patch contains scripts for applying stress on host or guest at
[kvmfornfv.git] / ci / envs / stress_scripts.sh
diff --git a/ci/envs/stress_scripts.sh b/ci/envs/stress_scripts.sh
new file mode 100755 (executable)
index 0000000..959a0aa
--- /dev/null
@@ -0,0 +1,70 @@
+################################################################
+#This script will impose stress on specified processors with the
+#arguments passed based on stress type.
+################################################################
+#!/bin/bash
+function usage() {
+    echo ""
+    echo "Usage --> $0 [-c CPU] [-t timeout] [-a stress-args][-h]"
+    echo "  CPU : 1/0-2 ;  default is 22-43"
+    echo "  timeout : N(number)"
+    echo "  stress-args : "--cpu=100 --vm=100 --io=10 --hdd=100""
+    echo "  -h : Help section"
+    echo ""
+}
+
+##  --- Parse command line arguments / parameters ---
+while getopts ":c:t:a:h" option; do
+    case $option in
+        c) # processor
+          processors=$OPTARG
+          ;;
+        t) # output_dir
+          timeout=$OPTARG
+          ;;
+        a)#istress args
+          args=$OPTARG
+          ;;
+        :)
+          echo "Option -$OPTARG requires an argument."
+          usage
+          exit 1
+          ;;
+        h)
+          usage
+          exit 0
+          ;;
+        *)
+          echo "Unknown option: $OPTARG."
+          usage
+          exit 1
+          ;;
+        ?)
+          echo "[WARNING] Unknown parameters!!!"
+          echo "Using default values for CPU,timeout and stress parameters"
+    esac
+done
+
+
+if [[ -z "$processors" ]]
+then
+    processors='22-43'
+fi
+
+if [[ -z "$timeout" ]]
+then
+   timeout='10m'
+fi
+
+if [[ -z "$args" ]]
+then
+   args="--cpu=100"
+fi
+
+stress_params=$(echo $args | sed 's/[,=]/ /g'|sed -e 's/\r//g')
+
+cmd="taskset -c $processors stress --timeout ${timeout} ${stress_params}"
+
+echo $cmd
+
+eval "${cmd}" &>/dev/null &disown