biotop(8) System Manager's Manual biotop(8)

# [NAME](#NAME)

biotop - Block device (disk) I/O by process top.

# [SYNOPSIS](#SYNOPSIS)

**biotop \[-h] \[-C] \[-r MAXROWS] \[-p PID] \[interval] \[count]**

# [DESCRIPTION](#DESCRIPTION)

This is top for disks.

This traces block device I/O (disk I/O), and prints a per-process summary every interval (by default, 1 second). The summary is sorted on the top disk consumers by throughput (Kbytes). The PID and process name shown are measured from when the I/O was first created, which usually identifies the responsible process.

For efficiency, this uses in-kernel eBPF maps to cache process details (PID and comm) by I/O request, as well as a starting timestamp for calculating I/O latency, and the final summary.

This works by tracing various kernel blk\_\*() functions using dynamic tracing, and will need updating to match any changes to these functions.

Since this uses BPF, only the root user can use this tool.

# [REQUIREMENTS](#REQUIREMENTS)

CONFIG\_BPF and bcc.

# [OPTIONS](#OPTIONS)

[-C](#C)

Don't clear the screen.

[-r MAXROWS](#r)

Maximum number of rows to print. Default is 20.

[-p PID](#p)

Trace this PID only.

[interval](#interval)

Interval between updates, seconds.

[count](#count)

Number of interval summaries.

# [EXAMPLES](#EXAMPLES)

[Summarize block device I/O by process, 1 second screen refresh:](#Summarize)

\# **biotop**

[Don't clear the screen:](#Don't)

\# **biotop -C**

5 second summaries, 10 times only:

\# **biotop 5 10**

# [FIELDS](#FIELDS)

[loadavg:](#loadavg:)

The contents of /proc/loadavg

[PID](#PID)

Cached process ID, if present. This usually (but isn't guaranteed) to identify the responsible process for the I/O.

[COMM](#COMM)

Cached process name, if present. This usually (but isn't guaranteed) to identify the responsible process for the I/O.

[D](#D)

Direction: R == read, W == write. This is a simplification.

[MAJ](#MAJ)

Major device number.

[MIN](#MIN)

Minor device number.

[DISK](#DISK)

Disk device name.

[I/O](#I/O)

Number of I/O during the interval.

[Kbytes](#Kbytes)

Total Kbytes for these I/O, during the interval.

[AVGms](#AVGms)

Average time for the I/O (latency) from the issue to the device, to its completion, in milliseconds.

# [OVERHEAD](#OVERHEAD)

Since block device I/O usually has a relatively low frequency (&lt; 10,000/s), the overhead for this tool is expected to be low or negligible. For high IOPS storage systems, test and quantify before use.

# [SOURCE](#SOURCE)

This is from bcc.

https://github.com/iovisor/bcc

Also look in the bcc distribution for a companion \_examples.txt file containing example usage, output, and commentary for this tool.

# [OS](#OS)

Linux

# [STABILITY](#STABILITY)

Unstable - in development.

# [AUTHOR](#AUTHOR)

Brendan Gregg, Rocky Xing

# [INSPIRATION](#INSPIRATION)

[top(1)](/man/enterprise-packages/bcc/top.1) by William LeFebvre

# [SEE ALSO](#SEE_ALSO)

[biosnoop(8)](/man/enterprise-packages/bcc/biosnoop.8), [biolatency(8)](/man/enterprise-packages/bcc/biolatency.8), [iostat(1)](/man/enterprise-packages/bcc/iostat.1)

2016-02-06 USER COMMANDS

---

Document: biotop(8) from bcc 0.37.0-r2 (Chainguard OS)
Source: https://github.com/iovisor/bcc
