Performance monitoring via CLI
ais performance or (same) ais show performance command supports the following 5 (five) subcommands:
1 $ ais performance <TAB-TAB> 2 3 counters throughput latency capacity disk
Further, use --help to display any of the five performance subcommands, e.g.:
1 $ ais performance throughput --help 2 3 NAME: 4 ais performance throughput - Show GET and PUT throughput, associated (cumulative, average) sizes and counters 5 6 USAGE: 7 ais performance throughput [TARGET_ID] [command options] 8 9 OPTIONS: 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 performanceand 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 3 latency ------------------ 13:03:58.329680 4 TARGET GET-COLD(n) GET-COLD-RW(t) GET-COLD(total/avg size) GET(n) GET(t) GET-REDIR(t) GET(total/avg size) 5 t[EkMt8081] 151 2.01s 145.00MiB 983.31KiB 154 2.13s 1.156551ms 154.00MiB 1.00MiB 6 7 latency ------------------ 13:04:08.335764 8 TARGET GET-COLD(n) GET-COLD-RW(t) GET-COLD(total/avg size) GET(n) GET(t) GET-REDIR(t) GET(total/avg size) 9 t[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:
| metric | comment |
|---|---|
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 2 NAME: 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 8 USAGE: 9 ais show performance counters [TARGET_ID] [command options] 10 11 OPTIONS: 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 2 NAME: 3 ais show performance disk - show disk utilization and read/write statistics 4 5 USAGE: 6 ais show performance disk [TARGET_ID] [command options] 7 8 OPTIONS: 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