Performance monitoring via CLI

View as Markdown

ais performance or (same) ais show performance command supports the following 5 (five) subcommands:

1$ ais performance <TAB-TAB>
2
3counters throughput latency capacity disk

Further, use --help to display any of the five performance subcommands, e.g.:

1$ ais performance throughput --help
2
3NAME:
4 ais performance throughput - Show GET and PUT throughput, associated (cumulative, average) sizes and counters
5
6USAGE:
7 ais performance throughput [TARGET_ID] [command options]
8
9OPTIONS:
10 --average-size Show average GET, PUT, etc. request size
11 --count value Used together with '--refresh' to limit the number of generated reports, e.g.:
12 '--refresh 10 --count 5' - run 5 times with 10s interval (default: 0)
13 --no-headers, -H Display tables without headers
14 --non-verbose, --nv Non-verbose (quiet) output, minimized reporting, fewer warnings
15 --refresh value Time interval for continuous monitoring; can be also used to update progress bar (at a given interval);
16 valid time units: ns, us (or µs), ms, s (default), m, h
17 --regex value Regular expression to select table columns (case-insensitive), e.g.:
18 --regex "put|err" - show PUT (count), PUT (total size), and all supported error counters;
19 --regex "Put|ERR" - same as above;
20 --regex "[a-z]" - show all supported metrics, including those that have zero values across all nodes;
21 --regex "(AWS-GET$|VERSION-CHANGE$)" - show the number object version changes (updates) and cold GETs from AWS
22 --regex "(gcp-get$|version-change$)" - same as above for Google Cloud ('gs://')
23 --units value Show statistics and/or parse command-line specified sizes using one of the following units of measurement:
24 iec - IEC format, e.g.: KiB, MiB, GiB (default)
25 si - SI (metric) format, e.g.: KB, MB, GB
26 raw - do not convert to (or from) human-readable format
27 --verbose, -v Verbose output
28 --help, -h Show help

Note that ais show performance and its shorter versioni, ais performance, can be used interchangeably.

ais performance throughput

Example usage:

1$ ais performance throughput --refresh 30

ais show performance latency

Example usage:

1$ ais show performance latency --refresh 10
2
3latency ------------------ 13:03:58.329680
4TARGET GET-COLD(n) GET-COLD-RW(t) GET-COLD(total/avg size) GET(n) GET(t) GET-REDIR(t) GET(total/avg size)
5t[EkMt8081] 151 2.01s 145.00MiB 983.31KiB 154 2.13s 1.156551ms 154.00MiB 1.00MiB
6
7latency ------------------ 13:04:08.335764
8TARGET GET-COLD(n) GET-COLD-RW(t) GET-COLD(total/avg size) GET(n) GET(t) GET-REDIR(t) GET(total/avg size)
9t[EkMt8081] 189 2.04s 181.00MiB 980.66KiB 190 1.86s 892.015µs 190.00MiB 1.00MiB

Notice naming conventions:

  • (n) - counter (total number of operations of a given kind)
  • (t) - time (latency of the operation)

Other notable semantics includes:

metriccomment
GET-COLD-RW(t)denotes (remote read, local write) latency, which is a part of the total latency not including the time it takes to transmit requested payload to user
GET(t)GET latency (for cold GETs includes the above)
GET-REDIR(t)time that passes between ais gateway redirecting GET operation to specific target, and this target starting to handle the request

ais show performance counters

1$ ais performance counters --help
2NAME:
3 ais performance counters - show (GET, PUT, DELETE, RENAME, EVICT, APPEND) object counts, as well as:
4 - numbers of list-objects requests;
5 - (GET, PUT, etc.) cumulative and average sizes;
6 - associated error counters, if any.
7
8USAGE:
9 ais show performance counters [TARGET_ID] [command options]
10
11OPTIONS:
12 --refresh value interval for continuous monitoring;
13 valid time units: ns, us (or µs), ms, s (default), m, h
14 --count value used together with '--refresh' to limit the number of generated reports, e.g.:
15 '--refresh 10 --count 5' - run 5 times with 10s interval (default: 0)
16 --no-headers, -H display tables without headers
17 --regex value regular expression select table columns (case-insensitive), e.g.:
18 --regex "put|err" - show PUT (count), PUT (total size), and all supported error counters;
19 --regex "[a-z]" - show all supported metrics, including those that have zero values across all nodes;
20 --regex "(GET-COLD$|VERSION-CHANGE$)" - show the number of cold GETs and object version changes (updates)
21 --units value show statistics and/or parse command-line specified sizes using one of the following _units of measurement_:
22 iec - IEC format, e.g.: KiB, MiB, GiB (default)
23 si - SI (metric) format, e.g.: KB, MB, GB
24 raw - do not convert to (or from) human-readable format
25 --average-size show average GET, PUT, etc. request size

ais performance disk

1$ ais performance disk --help
2NAME:
3 ais show performance disk - show disk utilization and read/write statistics
4
5USAGE:
6 ais show performance disk [TARGET_ID] [command options]
7
8OPTIONS:
9 --refresh value interval for continuous monitoring;
10 valid time units: ns, us (or µs), ms, s (default), m, h
11 --count value used together with '--refresh' to limit the number of generated reports, e.g.:
12 '--refresh 10 --count 5' - run 5 times with 10s interval (default: 0)
13 --no-headers, -H display tables without headers
14 --units value show statistics and/or parse command-line specified sizes using one of the following _units of measurement_:
15 iec - IEC format, e.g.: KiB, MiB, GiB (default)
16 si - SI (metric) format, e.g.: KB, MB, GB
17 raw - do not convert to (or from) human-readable format
18 --regex value regular expression select table columns (case-insensitive), e.g.:
19 --regex "put|err" - show PUT (count), PUT (total size), and all supported error counters;
20 --regex "[a-z]" - show all supported metrics, including those that have zero values across all nodes;
21 --regex "(GET-COLD$|VERSION-CHANGE$)" - show the number of cold GETs and object version changes (updates)
22 --summary tally up target disks to show per-target read/write summary stats and average utilizations