Table of Contents
CHECK_DISK-IO
Script: check_disk_io
check_disk-io is a plugin to show io, ticks and wait time. It shows a multiline output and sends performance data.
Requirements
-
lsblk
List information about block devices -
bc
calculator
Standalone installation
From this repository you need next to this script:
-
inc_pluginfunctions
shared function for all IML checks written in bash
Syntax
______________________________________________________________________
CHECK_DISK-IO
v1.3
(c) Institute for Medical Education - University of Bern
Licence: GNU GPL 3
https://os-docs.iml.unibe.ch/icinga-checks/Checks/check_disk_io.html
______________________________________________________________________
Disk infos based on /sys/block/[NAME]/stat
See https://www.kernel.org/doc/Documentation/block/stat.txt
and https://www.kernel.org/doc/Documentation/iostats.txt
The system data are counters that are difficult to read.
The output of this check for each value a delta value per second since
last check.
SYNTAX:
check_disk-io -m MODE
OPTIONS:
-h or --help show this help.
-m MODE set mode for type of output (required)
-d DIR for measure: set a directory, default: "/tmp"
-s SIZE for measure: set a size, default: "100M"
PARAMETERS:
MODE
io read I/Os, write I/Os, discard I/0s
measure measure write and read speed
ticks read ticks, write ticks, discard ticks
wait total wait time for all requests
DIR
Directory to perform read and write test.
SIZE
Block size for dd command: a number followed multiplicative suffix.
c=1, w=2, b=512, kB=1000, K=1024, MB=1000*1000, M=1024*1024, xM=M,
GB=1000*1000*1000, G=1024*1024*1024, and so on for T, P, E, Z, Y, R, Q
EXAMPLE:
check_disk-io -m io
check_disk-io -m measure
check_disk-io -m measure -d /mnt/data -s 10M
Parameters
-m <MODE>
where MODE is a string to define kind of output.
Examples
Disk io
$ check_disk-io -m io
returns
OK: Disk data ... read I/Os, write I/Os, discard I/0s, number of I/Os currently in flight
--- nvme0n1
disk-nvme0n1-ReadIO: 401
disk-nvme0n1-WriteIO: 61
disk-nvme0n1-DiscardIO: 0
disk-nvme0n1-FlightIO: 0
--- MAX
ReadIO: 401
WriteIO: 61
DiscardIO: 0
FlightIO: 0
|readio=401;; writeio=61;; discardio=0;; flightio=0;;
Measure
The mode measure
writes a randomly generated filename with dd
and reads the file afterwards. From the output is the of the command we fetch the speed in MB/s or GB/s.
$ check_disk-io -m measure
OK: Disk speed in /tmp using 100M - WRITE 952 MB/s READ 4.1 GB/s
|write=952;; read=4198.4;;
By default the check is done in /tmp with 100MB generated random data. You can set another directory eg. to perform a check on a mounted filesystem.