- trixie 0.31.0+ds-7
 - testing 0.31.0+ds-7
 - unstable 0.35.0+ds-1
 - experimental 0.35.0+ds-2~exp1
 
| f2fsslower(8) | System Manager's Manual | f2fsslower(8) | 
NAME¶
f2fsslower - Trace slow f2fs file operations, with per-event details.
SYNOPSIS¶
f2fsslower [-h] [-s] [-p PID] [min_ms]
DESCRIPTION¶
This tool traces common f2fs 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 f2fs_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.
- min_ms
 - Minimum I/O latency (duration) to trace, in milliseconds. Default is 10 ms.
 
EXAMPLES¶
- Trace synchronous file reads and writes slower than 10 ms:
 - # f2fsslower
 - Trace slower than 1 ms:
 - # f2fsslower 1
 - Trace slower than 1 ms, and output just the fields in parsable format (csv):
 - # f2fsslower -s 1
 - Trace all file reads and writes (warning: the output will be verbose):
 - # f2fsslower 0
 - Trace slower than 1 ms, for PID 181 only:
 - # f2fsslower -p 181 1
 
FIELDS¶
- TIME(s)
 - Time of I/O completion since the first I/O seen, in seconds.
 - COMM
 - Process name.
 - PID
 - Process ID.
 - T
 - Type of operation. R == read, W == write, O == open, S == fsync.
 - OFF_KB
 - File offset for the I/O, in Kbytes.
 - BYTES
 - Size of I/O, in bytes.
 - LAT(ms)
 - 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.
 - FILENAME
 - A cached kernel file name (comes from dentry->d_name.name).
 - ENDTIME_us
 - Completion timestamp, microseconds (-s only).
 - OFFSET_b
 - File offset, bytes (-s only).
 - LATENCY_us
 - Latency (duration) of the I/O, in microseconds (-s only).
 
OVERHEAD¶
This adds low-overhead instrumentation to these f2fs 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 f2fs functions only, and not all file read/write paths (which can include socket I/O).
SOURCE¶
This is from 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¶
Ting Zhang
SEE ALSO¶
biosnoop(8), funccount(8), fileslower(8)
| 2022-08-15 | USER COMMANDS |