Scroll to navigation

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

NAME

ext4slower - Trace slow ext4 file operations, with per-event details.

SYNOPSIS

ext4slower [-h] [-j] [-p PID] [min_ms]

DESCRIPTION

This tool traces common ext4 file operations: reads, writes, opens, and syncs. It measures the time spent in these operations, and prints details for each that exceeded a threshold.

WARNING: See the OVERHEAD section.

By default, a minimum millisecond threshold of 10 is used. If a threshold of 0 is used, all events are printed (warning: verbose).

Since this works by tracing the ext4_file_operations interface functions, it will need updating to match any changes to these functions.

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

REQUIREMENTS

CONFIG_BPF and bcc.

OPTIONS

-p PID Trace this PID only.

Minimum I/O latency (duration) to trace, in milliseconds. Default is 10 ms.

EXAMPLES

# ext4slower
# ext4slower 1
# ext4slower -j 1
# ext4slower 0
# ext4slower -p 181 1

FIELDS

Time of I/O completion since the first I/O seen, in seconds.
Process name.
Process ID.
Type of operation. R == read, W == write, O == open, S == fsync.
File offset for the I/O, in Kbytes.
Size of I/O, in bytes.
Latency (duration) of I/O, measured from when it was issued by VFS to the filesystem, to when it completed. This time is inclusive of block device I/O, file system CPU cycles, file system locks, run queue latency, etc. It's a more accurate measure of the latency suffered by applications performing file system I/O, than to measure this down at the block device interface.
A cached kernel file name (comes from dentry->d_name.name).
Completion timestamp, microseconds (-j only).
File offset, bytes (-j only).
Latency (duration) of the I/O, in microseconds (-j only).

OVERHEAD

This adds low-overhead instrumentation to these ext4 operations, including reads and writes from the file system cache. Such reads and writes can be very frequent (depending on the workload; eg, 1M/sec), at which point the overhead of this tool (even if it prints no "slower" events) can begin to become significant. Measure and quantify before use. If this continues to be a problem, consider switching to a tool that prints in-kernel summaries only.

Note that the overhead of this tool should be less than fileslower(8), as this tool targets ext4 functions only, and not all file read/write paths (which can include socket I/O).

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

Linux

STABILITY

Unstable - in development.

AUTHOR

Brendan Gregg

SEE ALSO

biosnoop(8), funccount(8), fileslower(8)

2016-02-11 USER COMMANDS