| 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>. |