perf-iostat(1)
===============

NAME
----
perf-iostat - Show I/O performance metrics

SYNOPSIS
--------
[verse]
'perf iostat' list
'perf iostat' <ports> \-- <command> [<options>]

DESCRIPTION
-----------
Mode is intended to provide four I/O performance metrics per each PCIe root port:

- Inbound Read   - I/O devices below root port read from the host memory, in MB

- Inbound Write  - I/O devices below root port write to the host memory, in MB

- Outbound Read  - CPU reads from I/O devices below root port, in MB

- Outbound Write - CPU writes to I/O devices below root port, in MB

OPTIONS
-------
<command>...::
	Any command you can specify in a shell.

list::
	List all PCIe root ports.

<ports>::
	Select the root ports for monitoring. Comma-separated list is supported.

EXAMPLES
--------

1. List all PCIe root ports (example for 2-S platform):

   $ perf iostat list
   S0-uncore_iio_0<0000:00>
   S1-uncore_iio_0<0000:80>
   S0-uncore_iio_1<0000:17>
   S1-uncore_iio_1<0000:85>
   S0-uncore_iio_2<0000:3a>
   S1-uncore_iio_2<0000:ae>
   S0-uncore_iio_3<0000:5d>
   S1-uncore_iio_3<0000:d7>

2. Collect metrics for all PCIe root ports:

   $ perf iostat -- dd if=/dev/zero of=/dev/nvme0n1 bs=1M oflag=direct
   357708+0 records in
   357707+0 records out
   375083606016 bytes (375 GB, 349 GiB) copied, 215.974 s, 1.7 GB/s

    Performance counter stats for 'system wide':

      port             Inbound Read(MB)    Inbound Write(MB)    Outbound Read(MB)   Outbound Write(MB)
   0000:00                    1                    0                    2                    3
   0000:80                    0                    0                    0                    0
   0000:17               352552                   43                    0                   21
   0000:85                    0                    0                    0                    0
   0000:3a                    3                    0                    0                    0
   0000:ae                    0                    0                    0                    0
   0000:5d                    0                    0                    0                    0
   0000:d7                    0                    0                    0                    0

3. Collect metrics for comma-separated list of PCIe root ports:

   $ perf iostat 0000:17,0:3a -- dd if=/dev/zero of=/dev/nvme0n1 bs=1M oflag=direct
   357708+0 records in
   357707+0 records out
   375083606016 bytes (375 GB, 349 GiB) copied, 197.08 s, 1.9 GB/s

    Performance counter stats for 'system wide':

      port             Inbound Read(MB)    Inbound Write(MB)    Outbound Read(MB)   Outbound Write(MB)
   0000:17               358559                   44                    0                   22
   0000:3a                    3                    2                    0                    0

        197.081983474 seconds time elapsed

SEE ALSO
--------
linkperf:perf-stat[1]
