LinuxCommandLibrary

ioping

Measure disk I/O latency

TLDR

Show disk I/O latency using the default values and the current directory

$ ioping .
copy

Measure latency on /tmp using 10 requests of 1 megabyte each
$ ioping [[-c|-count]] 10 [[-s|-size]] 1M /tmp
copy

Measure disk seek rate on /dev/sdX
$ ioping [[-R|-rapid]] [/dev/sdX]
copy

Measure disk sequential speed on /dev/sdX
$ ioping [[-RL|-rapid -linear]] [/dev/sdX]
copy

SYNOPSIS

ioping [options] device|file|directory ...

PARAMETERS

-c, --count
    Stop after sending N requests (default: 5)

-i, --interval
    Pause N microseconds between requests (default: 250000 µs / 250 ms)

-s, --size
    I/O request size in bytes (default: 4096)

-t, --time
    Stop after N seconds (default: forever)

-I, --summary-only
    Print only the summary line

-q, --quiet
    Quiet mode: print result summary only

-R, --recursive
    Recursively scan all files in directory

-S, --sequential
    Use sequential I/O offsets (default: random)

-r, --random
    Use random I/O offsets

-w, --cached
    Use cached/buffered I/O (disable O_DIRECT)

-C, --compat
    Compatibility mode (minimal output)

-l, --level
    Set log level: 0=silent, 1=errors, 2=warnings, 3=verbose (default: 3)

-T, --threaded
    Run tests in separate threads per device

-z, --zero-out
    Fill I/O buffers with zeros (default: random)

-h, --help
    Print help

-V, --version
    Print version

DESCRIPTION

ioping is a lightweight command-line utility that benchmarks storage I/O performance by measuring latency and throughput, similar to how ping tests network latency.

It sends sequences of read or write requests (default: random writes with direct I/O) to block devices, files, or directories, reporting statistics like minimum, average, maximum latency, and request rate.

Key use cases include diagnosing high-latency storage in VMs, containers, cloud instances, or physical servers; comparing SSD vs HDD performance; testing filesystem overhead; and recursive scans for entire directories.

By default, it uses O_DIRECT to bypass page cache, ensuring realistic disk measurements, but supports cached mode for buffered I/O tests. Output mimics ping with per-request timings and a summary line (e.g., "/dev/sda: request count=10 avg/max latency=0.45/2.1 ms").

Ideal for quick spot-checks without complex setup like fio.

CAVEATS

Root privileges often required for raw block devices (/dev/sd*); may wear SSDs with heavy writes (use -w or reads); direct I/O needs aligned sizes/offsets; not for production workloads.

TYPICAL OUTPUT

<device>: request count=<N> avg/max latency=<X>/<Y> ms
Each line shows per-request latency; summary at end like ping.

EXAMPLES

ioping -c 10 /dev/sda
10 random writes to sda.

ioping -R -c 5 /home
Recursive ping files in /home.

ioping -S -s 1M -t 10 /tmp/testfile
10s sequential 1MB reads.

HISTORY

Developed by Oleg Goncharov (kojole) starting ~2013; open-source on GitHub (github.com/kojole/ioping); actively maintained with ports to FreeBSD, macOS; popular for quick I/O diagnostics in Linux sysadmin/devops since v0.6+.

SEE ALSO

fio(1), dd(1), hdparm(8), bonnie++(1), sysbench(1)

Copied to clipboard