aboutsummaryrefslogtreecommitdiffstats
path: root/resources/tools/wrk/wrk_utils.sh
diff options
context:
space:
mode:
Diffstat (limited to 'resources/tools/wrk/wrk_utils.sh')
-rwxr-xr-xresources/tools/wrk/wrk_utils.sh246
1 files changed, 0 insertions, 246 deletions
diff --git a/resources/tools/wrk/wrk_utils.sh b/resources/tools/wrk/wrk_utils.sh
deleted file mode 100755
index 16af61416b..0000000000
--- a/resources/tools/wrk/wrk_utils.sh
+++ /dev/null
@@ -1,246 +0,0 @@
-#!/bin/bash
-# Copyright (c) 2019 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-set -x
-
-function wrk_utils.installed {
-
- # Check if the WRK utility is installed. Fail if not installed.
-
- # Returns:
- # - 0 - If command is installed.
- # - 1 - If command is not installed.
-
- set -exuo pipefail
-
- command -v wrk
-}
-
-
-function wrk_utils.traffic_1_url_1_core {
- # Send traffic
- # - to n URL (NIC)
- # - using n instances of wrk, each on separate core.
-
- # The CPU used for wrk
- cpu=${1}
- # Total number of threads to use by one instance of wrk to send traffic.
- threads=${2}
- # Total number of HTTP connections to keep open with each thread handling
- # N = connections / threads.
- connections=${3}
- # Duration of the test.
- duration=${4}
- # HTTP header to add to request.
- header=${5}
- # Record a timeout if a response is not received within this amount of time.
- timeout=${6}
- # Path to LuaJIT script.
- script=${7}
- # Print detailed latency statistics.
- latency=${8}
- # URL to send the traffic to.
- url=${9}
-
- if [ "${timeout}" != "None" ]; then
- timeout="--timeout ${timeout}"
- else
- timeout=""
- fi
-
- if [ "${latency}" = "True" ]; then
- latency="--latency"
- else
- latency=""
- fi
-
- if [ "${script}" != "None" ]; then
- script="--script '${script}'"
- else
- script=""
- fi
-
- if [ "${header}" != "None" ]; then
- header="${header}"
- else
- header="''"
- fi
-
- taskset --cpu-list ${cpu} \
- wrk --threads ${threads} \
- --connections ${connections} \
- --duration ${duration} \
- --header "${header}" \
- ${timeout} \
- ${script} \
- ${latency} \
- ${url}
-}
-
-function wrk_utils.traffic_n_urls_n_cores {
- # Send traffic
- # - to n URL (NIC)
- # - using n instances of wrk, each on separate core.
-
- # The first CPU used for wrk
- first_cpu=${1}
- # Total number of threads to use by one instance of wrk to send traffic.
- threads=${2}
- # Total number of HTTP connections to keep open with each thread handling
- # N = connections / threads.
- connections=${3}
- # Duration of the test.
- duration=${4}
- # HTTP header to add to request.
- header=${5}
- # Record a timeout if a response is not received within this amount of time.
- timeout=${6}
- # Path to LuaJIT script.
- script=${7}
- # Print detailed latency statistics.
- latency=${8}
- # URL to send the traffic to.
- urls=${9}
-
- if [ "${timeout}" != "None" ]; then
- timeout="--timeout ${timeout}"
- else
- timeout=""
- fi
-
- if [ "${latency}" = "True" ]; then
- latency="--latency"
- else
- latency=""
- fi
-
- if [ "${script}" != "None" ]; then
- script="--script '${script}'"
- else
- script=""
- fi
-
- if [ "${header}" != "None" ]; then
- header="${header}"
- else
- header="''"
- fi
-
- urls=$(echo ${urls} | tr ";" "\n")
- cpu=${first_cpu}
- for url in ${urls}; do
- taskset --cpu-list ${cpu} \
- wrk --threads ${threads} \
- --connections ${connections} \
- --duration ${duration} \
- --header "${header}" \
- ${timeout} \
- ${script} \
- ${latency} \
- ${url} &
- cpu=$((cpu+1))
- done
-
- sleep ${duration}
- sleep 2
-}
-
-function wrk_utils.traffic_n_urls_m_cores {
- # Send traffic
- # - to n URL (NIC)
- # - using m instances of wrk, each on separate core.
-
- # The first CPU used for wrk
- first_cpu=${1}
- # The last CPU used for wrk
- cpus_per_url=${2}
- # Total number of threads to use by one instance of wrk to send traffic.
- threads=${3}
- # Total number of HTTP connections to keep open with each thread handling
- # N = connections / threads.
- connections=${4}
- # Duration of the test.
- duration=${5}
- # HTTP header to add to request.
- header=${6}
- # Record a timeout if a response is not received within this amount of time.
- timeout=${7}
- # Path to LuaJIT script.
- script=${8}
- # Print detailed latency statistics.
- latency=${9}
- # URL to send the traffic to.
- urls=${10}
-
- if [ "${timeout}" != "None" ]; then
- timeout="--timeout ${timeout}"
- else
- timeout=""
- fi
-
- if [ "${latency}" = "True" ]; then
- latency="--latency"
- else
- latency=""
- fi
-
- if [ "${script}" != "None" ]; then
- script="--script '${script}'"
- else
- script=""
- fi
-
- if [ "${header}" != "None" ]; then
- header="${header}"
- else
- header="''"
- fi
-
- urls=$(echo ${urls} | tr ";" "\n")
-
- cpu=${first_cpu}
- for i in `seq 1 ${cpus_per_url}`; do
- for url in ${urls}; do
- taskset --cpu-list ${cpu} \
- wrk --threads ${threads} \
- --connections ${connections} \
- --duration ${duration} \
- --header "${header}" \
- ${timeout} \
- ${script} \
- ${latency} \
- ${url} &
- cpu=$((cpu+1))
- done
- done
-
- sleep ${duration}
- sleep 2
-}
-
-args=("$@")
-case ${1} in
- installed)
- wrk_utils.installed
- ;;
- traffic_1_url_1_core)
- wrk_utils.traffic_1_url_1_core "${args[@]:1}"
- ;;
- traffic_n_urls_n_cores)
- wrk_utils.traffic_n_urls_n_cores "${args[@]:1}"
- ;;
- traffic_n_urls_m_cores)
- wrk_utils.traffic_n_urls_m_cores "${args[@]:1}"
- ;;
-esac