blob: 44c014cb4bf50f9066edd0d35519f35f722f6983 [file] [log] [blame]
Demonstrations of drsnoop, the Linux BPF CO-RE version.
drsnoop traces the direct reclaim system-wide, and prints various details.
Example output:
# drsnoop
Tracing direct reclaim events... Hit Ctrl-C to end.
TIME COMM TID LAT(ms) PAGES
14:56:43 in:imklog 268 106.637 39
14:56:43 systemd-udevd 232 110.708 53
14:56:43 systemd-journal 19531 106.083 62
^C
While tracing, the processes alloc pages due to insufficient memory available
in the system, direct reclaim events happened, which will increase the waiting
delay of the processes.
drsnoop can be useful for discovering when allocstall(/proc/vmstat) continues
to increase, whether it is caused by some critical processes or not.
The -p option can be used to filter on a PID, which is filtered in-kernel.
# drsnoop -p 17491
Tracing direct reclaim events... Hit Ctrl-C to end.
TIME COMM TID LAT(ms) PAGES
14:59:56 summond 17491 0.24 50
14:59:56 summond 17491 0.26 38
14:59:56 summond 17491 0.36 72
^C
This shows the summond process allocs pages, and direct reclaim events happening,
and the delays are not affected much.
A maximum tracing duration can be set with the -d option. For example, to trace
for 2 seconds:
# drsnoop -d 2
Tracing direct reclaim events for 2 secs.
TIME COMM TID LAT(ms) PAGES
15:02:16 head 21715 0.15 195
USAGE message:
# drsnoop --help
Usage: drsnoop [OPTION...]
Trace direct reclaim latency.
USAGE: drsnoop [--help] [-p PID] [-t TID] [-d DURATION] [-e]
EXAMPLES:
drsnoop # trace all direct reclaim events
drsnoop -p 123 # trace pid 123
drsnoop -t 123 # trace tid 123 (use for threads only)
drsnoop -d 10 # trace for 10 seconds only
drsnoop -e # trace all direct reclaim events with extended faileds
-d, --duration=DURATION Total duration of trace in seconds
-e, --extended Extended fields output
-p, --pid=PID Process PID to trace
-t, --tid=TID Thread TID to trace
-v, --verbose Verbose debug output
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Report bugs to <bpf@vger.kernel.org>.