mirror of
git://code.qt.io/qt/qt5.git
synced 2026-01-04 22:17:45 +08:00
Install binaries as early as possible in the provisioning process, and start them, in order to monitor provisioning too. To achieve this, some OS auto-detection logic is introduced in shell script common.sourced.sh. The script can be sourced and used in all kind of other generic scripts. ioping is also installed from custom-compiled binaries in order to monitor the disk latency of the VMs. Reason we don't use ioping from the repositories, is that the units differ between ioping versions (new ioping reports latencies in nanoseconds, old in microseconds). Fixes: QTQAINFRA-3092 Change-Id: I9d9afb791955725d4bd0b32dae97dfc0bd4a76a3 Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
27 lines
903 B
Bash
27 lines
903 B
Bash
#!/bin/sh
|
|
|
|
# Measure I/O latency once, return data in InfluxDB format
|
|
#
|
|
# Run one ioping command for read, and one for write.
|
|
# Each one sends 3 requests and reports the minimum time, in nanoseconds.
|
|
# (Because of limitations of ioping, we can't just send one request and get
|
|
# the number back in the batch format. Additionally, the number seems to be
|
|
# fluctuating quite a bit so taking the smallest number out of 3 requests is
|
|
# stabilising it a bit.)
|
|
|
|
|
|
set -e
|
|
|
|
[ x"$1" = x ] && echo "$0 takes a path as a first argument" && exit 1
|
|
|
|
# Try to run in high priority to avoid slow-downs because of
|
|
# factors other than I/O.
|
|
renice -n -10 -p $$ >/dev/null 2>&1 || true
|
|
|
|
|
|
rlatency="$(ioping -B -k -c 3 -i 0.1 "$1" | cut -d " " -f 5)"
|
|
wlatency="$(ioping -B -k -c 3 -i 0.1 -W "$1" | cut -d " " -f 5)"
|
|
|
|
printf "ioping,path=$1 read_latency_ns=%u,write_latency_ns=%u\n" \
|
|
$rlatency $wlatency
|