---
name: "pmiostat"
section: "1"
platform: "linux"
package: "pcp"
version: "7.2.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/pmiostat"
---

# pmiostat(1)

report block I/O statistics

## NAME

**pmiostat**, **pcp-iostat** - report block I/O statistics

## SYNOPSIS

**pcp** \[*pcp options*\] **iostat** \[**-u?**\] \[**-G** *method*\] \[**-P** *precision*\] \[**-R** *pattern*\] \[**-x** \[dm\]\[,t\]\[,h\]\[,noidle\]\]

## DESCRIPTION

**pcp-iostat** reports I/O statistics for SCSI (by default) or other devices (if the **-x** option is specified).

## OPTIONS

When invoked via the [**pcp**(1)](/pcp/1.md) command, the *pcp options* **-A**/ **--align**, **-a**/ **--archive**, **-h**/ **--host**, **-O**/ **--origin**, **-S**/ **--start**, **-s**/ **--samples**, **-T**/ **--finish**, **-t**/ **--interval**, **-v**/ **--version**, **-Z**/ **--timezone** and **-z**/ **--hostzone** become indirectly available; refer to [**PCPIntro**(1)](/PCPIntro/1.md) for a complete description of these options.\

The additional command line options available for **pcp-iostat** are:

- **-G** *method*, **--aggregate**=*method*

  Specifies that statistics for device names matching the regular expression specified with the **-R** *regex* option should be aggregated according to *method*. Note this is aggregation based on matching device names (not temporal aggregation). When **-G** is used, the device name column is reported as *method*(*regex*), e.g. if **-G sum** **-R 'sd(a\|b)$'** is specified, the device column will be **sum**(**sd(a\|b)$)** and summed statistics for **sda** and **sdb** will be reported in the remaining columns. If **-G** is specified but **-R** is not specified, then the default *regex* is **.\***, i.e. matching all device names. If *method* is **sum** then the statistics are summed. This includes the **%util** column, which may therefore exceed 100% if more than one device name matches. If *method* is **avg** then the statistics are summed and then averaged by dividing by the number of matching device names. If *method* is **min** or **max**, the minimum or maximum statistics for matching devices are reported, respectively.

- **-P** *N*, **--precision**=*N*

  This indicates the precision (number of decimal places) to report. The default precision *N* may be set to something other than the default (2). Note that the **avgrq-sz** and **avgqu-sz** fields are always reported with *N*+1 decimals of precision. These fields typically have values less than 1.

- **-R** *pattern*, **--regex**=*pattern*

  This restricts the report to device names matching a regular expression *pattern*. The given *pattern* is searched as a perl style regular expression, and will match any portion of a device name. e.g. '^sd\[a-zA-Z\]+' will match all device names starting with 'sd' followed by one or more alphabetic characters. e.g. '^sd(a\|b)$' will only match 'sda' and 'sdb'. e.g. 'sda$' will match 'sda' but not 'sdab'. See also the **-G** option for aggregation options.

- **-u**, **--no-interpolation**

  When replaying a set of archives, by default values are reported according to the requested sample interval (**-t** option), not according to the actual interval recorded in the archive(s). Without this option PCP interpolates the values to be reported based on the records in the set of archives, which is particularly useful when the **-t** option is used to replay a set of archives with a longer sampling interval than that with which the archive(s) was originally recorded with. With the **-u** option, uninterpolated reporting is enabled - every value is reported according to the native recording interval in the set of archives. When the **-u** option is specified, the **-t** option makes no sense and is incompatible because the replay interval is always the same as the recording interval in the set of archive. In addition, **-u** only makes sense when replaying archives, see the **-a** option on [**PCPIntro**(1)](/PCPIntro/1.md), and so if **-u** is specified then **-a** must also be specified.

- **-V**, **--version**

  Display version number and exit.

- **-x** *comma-separated-options*

  Specifies a comma-separated list of one or more extended reporting options as follows:\
   **dm** - report statistics for device-mapper logical devices instead of SCSI devices,\
   **t** - prefix every line in the report with a timestamp in [*ctime*(3)](/ctime/3.md) format,\
   **h** - omit the heading, which is otherwise reported every 24 samples,\
   **noidle** - Do not display statistics for idle devices.

- **-?**, **--help**

  Display usage message and exit.

## REPORT

The columns in the **pcp-iostat** report have the following interpretation:

- **Timestamp**

  When the **-x t** option is specified, this column is the timestamp in [**ctime**(3)](/ctime/3.md) format.

- **Device**

  Specifies the scsi device name, or if **-x dm** is specified, the device-mapper logical device name. When **-G** is specified, this is replaced by the aggregation method and regular expression - see the **-G** and **-R** options above.

- **rrqm/s**

  The number of read requests expressed as a rate per-second that were merged during the reporting interval by the I/O scheduler.

- **wrqm/s**

  The number of write requests expressed as a rate per-second that were merged during the reporting interval by the I/O scheduler.

- **r/s**

  The number of read requests completed by the device (after merges), expressed as a rate per second during the reporting interval.

- **w/s**

  The number of write requests completed by the device (after merges), expressed as a rate per second during the reporting interval.

- **rkB/s**

  The average volume of data read from the device expressed as KBytes/second during the reporting interval.

- **wkB/s**

  The average volume of data written to the device expressed as KBytes/second during the reporting interval.

- **avgrq-sz**

  The average I/O request size for both reads and writes to the device expressed as Kbytes during the reporting interval.

- **avgqu-sz**

  The average queue length of read and write requests to the device during the reporting interval.

- **await**

  The average time in milliseconds that read and write requests were queued (and serviced) to the device during the reporting interval.

- **r\_await**

  The average time in milliseconds that read requests were queued (and serviced) to the device during the reporting interval.

- **w\_await**

  The average time in milliseconds that write requests were queued (and serviced) to the device during the reporting interval.

- **%util**

  The percentage of time during the reporting interval that the device was busy processing requests. A value of 100% indicates device saturation.

## PCP ENVIRONMENT

Environment variables with the prefix **PCP\_** are used to parameterize the file and directory names used by PCP. On each installation, the file */etc/pcp.conf* contains the local values for these variables. The **$PCP\_CONF** variable may be used to specify an alternative configuration file, as described in [**pcp.conf**(5)](/pcp.conf/5.md).

For environment variables affecting PCP tools, see [**pmGetOptions**(3)](/pmGetOptions/3.md).

## DEBUGGING OPTIONS

The **-D** or **--debug** pcp option enables the output of additional diagnostics on *stderr* to help triage problems, although the information is sometimes cryptic and primarily intended to provide guidance for developers rather than for end-users. *debug* is a comma separated list of debugging options; use [**pmdbg**(1)](/pmdbg/1.md) with the **-l** option to obtain a list of the available debugging options and their meaning.

## SEE ALSO

[**PCPIntro**(1)](/PCPIntro/1.md), [**pcp**(1)](/pcp/1.md), [**iostat2pcp**(1)](/iostat2pcp/1.md), [**pmcd**(1)](/pmcd/1.md), [**pmchart**(1)](/pmchart/1.md), [**pmlogger**(1)](/pmlogger/1.md), [**pcp.conf**(5)](/pcp.conf/5.md) and [**pcp.env**(5)](/pcp.env/5.md).
