xref: /aosp_15_r20/external/bcc/tools/dirtop_example.txt (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard WorkerDemonstrations of dirtop, the Linux eBPF/bcc version.
2*387f9dfdSAndroid Build Coastguard Worker
3*387f9dfdSAndroid Build Coastguard Worker
4*387f9dfdSAndroid Build Coastguard Workerdirtop shows reads and writes by directory. For example:
5*387f9dfdSAndroid Build Coastguard Worker
6*387f9dfdSAndroid Build Coastguard Worker# ./dirtop.py -d '/hdfs/uuid/*/yarn'
7*387f9dfdSAndroid Build Coastguard WorkerTracing... Output every 1 secs. Hit Ctrl-C to end
8*387f9dfdSAndroid Build Coastguard Worker
9*387f9dfdSAndroid Build Coastguard Worker14:28:12 loadavg: 25.00 22.85 21.22 31/2921 66450
10*387f9dfdSAndroid Build Coastguard Worker
11*387f9dfdSAndroid Build Coastguard WorkerREADS  WRITES R_Kb     W_Kb     PATH
12*387f9dfdSAndroid Build Coastguard Worker1030   2852   8        147341   /hdfs/uuid/c11da291-28de-4a77-873e-44bb452d238b/yarn
13*387f9dfdSAndroid Build Coastguard Worker3308   2459   10980    24893    /hdfs/uuid/bf829d08-1455-45b8-81fa-05c3303e8c45/yarn
14*387f9dfdSAndroid Build Coastguard Worker2227   7165   6484     11157    /hdfs/uuid/76dc0b77-e2fd-4476-818f-2b5c3c452396/yarn
15*387f9dfdSAndroid Build Coastguard Worker1985   9576   6431     6616     /hdfs/uuid/99c178d5-a209-4af2-8467-7382c7f03c1b/yarn
16*387f9dfdSAndroid Build Coastguard Worker1986   398    6474     6486     /hdfs/uuid/7d512fe7-b20d-464c-a75a-dbf8b687ee1c/yarn
17*387f9dfdSAndroid Build Coastguard Worker764    3685   5        7069     /hdfs/uuid/250b21c8-1714-45fe-8c08-d45d0271c6bd/yarn
18*387f9dfdSAndroid Build Coastguard Worker432    1603   259      6402     /hdfs/uuid/4a833770-767e-43b3-b696-dc98901bce26/yarn
19*387f9dfdSAndroid Build Coastguard Worker993    5856   320      129      /hdfs/uuid/b94cbf3f-76b1-4ced-9043-02d450b9887c/yarn
20*387f9dfdSAndroid Build Coastguard Worker612    5645   4        249      /hdfs/uuid/8138a53b-b942-44d3-82df-51575f1a3901/yarn
21*387f9dfdSAndroid Build Coastguard Worker818    21     6        166      /hdfs/uuid/fada8004-53ff-48df-9396-165d8e42925b/yarn
22*387f9dfdSAndroid Build Coastguard Worker174    23     1        171      /hdfs/uuid/d04fccd8-bc72-4ed9-bda4-c5b6893f1405/yarn
23*387f9dfdSAndroid Build Coastguard Worker376    6281   2        97       /hdfs/uuid/0cc3683f-4800-4c73-8075-8d77dc7cf116/yarn
24*387f9dfdSAndroid Build Coastguard Worker370    4588   2        96       /hdfs/uuid/a78f846a-58c4-4d10-a9f5-42f16a6134a0/yarn
25*387f9dfdSAndroid Build Coastguard Worker190    6420   1        86       /hdfs/uuid/2c6a7223-cb18-4916-a1b6-8cd02bda1d31/yarn
26*387f9dfdSAndroid Build Coastguard Worker178    123    1        17       /hdfs/uuid/b3b2a2ed-f6c1-4641-86bf-2989dd932411/yarn
27*387f9dfdSAndroid Build Coastguard Worker[...]
28*387f9dfdSAndroid Build Coastguard Worker
29*387f9dfdSAndroid Build Coastguard WorkerThis shows various directories read and written when hadoop runs.
30*387f9dfdSAndroid Build Coastguard WorkerBy default the output is sorted by the total read size in Kbytes (R_Kb).
31*387f9dfdSAndroid Build Coastguard WorkerSorting order can be changed via -s option.
32*387f9dfdSAndroid Build Coastguard WorkerThis is instrumenting at the VFS interface, so this is reads and writes that
33*387f9dfdSAndroid Build Coastguard Workermay return entirely from the file system cache (page cache).
34*387f9dfdSAndroid Build Coastguard Worker
35*387f9dfdSAndroid Build Coastguard WorkerWhile not printed, the average read and write size can be calculated by
36*387f9dfdSAndroid Build Coastguard Workerdividing R_Kb by READS, and the same for writes.
37*387f9dfdSAndroid Build Coastguard Worker
38*387f9dfdSAndroid Build Coastguard WorkerThis script works by tracing the vfs_read() and vfs_write() functions using
39*387f9dfdSAndroid Build Coastguard Workerkernel dynamic tracing, which instruments explicit read and write calls. If
40*387f9dfdSAndroid Build Coastguard Workerfiles are read or written using another means (eg, via mmap()), then they
41*387f9dfdSAndroid Build Coastguard Workerwill not be visible using this tool.
42*387f9dfdSAndroid Build Coastguard Worker
43*387f9dfdSAndroid Build Coastguard WorkerThis should be useful for file system workload characterization when analyzing
44*387f9dfdSAndroid Build Coastguard Workerthe performance of applications.
45*387f9dfdSAndroid Build Coastguard Worker
46*387f9dfdSAndroid Build Coastguard WorkerNote that tracing VFS level reads and writes can be a frequent activity, and
47*387f9dfdSAndroid Build Coastguard Workerthis tool can begin to cost measurable overhead at high I/O rates.
48*387f9dfdSAndroid Build Coastguard Worker
49*387f9dfdSAndroid Build Coastguard Worker
50*387f9dfdSAndroid Build Coastguard WorkerA -C option will stop clearing the screen, and -r with a number will restrict
51*387f9dfdSAndroid Build Coastguard Workerthe output to that many rows (20 by default). For example, not clearing
52*387f9dfdSAndroid Build Coastguard Workerthe screen and showing the top 5 only:
53*387f9dfdSAndroid Build Coastguard Worker
54*387f9dfdSAndroid Build Coastguard Worker# ./dirtop -d '/hdfs/uuid/*/yarn' -Cr 5
55*387f9dfdSAndroid Build Coastguard WorkerTracing... Output every 1 secs. Hit Ctrl-C to end
56*387f9dfdSAndroid Build Coastguard Worker
57*387f9dfdSAndroid Build Coastguard Worker14:29:08 loadavg: 25.66 23.42 21.51 17/2850 67167
58*387f9dfdSAndroid Build Coastguard Worker
59*387f9dfdSAndroid Build Coastguard WorkerREADS  WRITES R_Kb     W_Kb     PATH
60*387f9dfdSAndroid Build Coastguard Worker100    8429   0        48243    /hdfs/uuid/b94cbf3f-76b1-4ced-9043-02d450b9887c/yarn
61*387f9dfdSAndroid Build Coastguard Worker2066   4091   8176     26457    /hdfs/uuid/d04fccd8-bc72-4ed9-bda4-c5b6893f1405/yarn
62*387f9dfdSAndroid Build Coastguard Worker10     2043   0        8172     /hdfs/uuid/b3b2a2ed-f6c1-4641-86bf-2989dd932411/yarn
63*387f9dfdSAndroid Build Coastguard Worker38     1368   0        2652     /hdfs/uuid/a78f846a-58c4-4d10-a9f5-42f16a6134a0/yarn
64*387f9dfdSAndroid Build Coastguard Worker86     19     0        123      /hdfs/uuid/c11da291-28de-4a77-873e-44bb452d238b/yarn
65*387f9dfdSAndroid Build Coastguard Worker
66*387f9dfdSAndroid Build Coastguard Worker14:29:09 loadavg: 25.66 23.42 21.51 15/2849 67170
67*387f9dfdSAndroid Build Coastguard Worker
68*387f9dfdSAndroid Build Coastguard WorkerREADS  WRITES R_Kb     W_Kb     PATH
69*387f9dfdSAndroid Build Coastguard Worker1204   5619   4388     33767    /hdfs/uuid/b94cbf3f-76b1-4ced-9043-02d450b9887c/yarn
70*387f9dfdSAndroid Build Coastguard Worker2208   3511   8744     22992    /hdfs/uuid/d04fccd8-bc72-4ed9-bda4-c5b6893f1405/yarn
71*387f9dfdSAndroid Build Coastguard Worker62     4010   0        21181    /hdfs/uuid/8138a53b-b942-44d3-82df-51575f1a3901/yarn
72*387f9dfdSAndroid Build Coastguard Worker22     2187   0        8748     /hdfs/uuid/b3b2a2ed-f6c1-4641-86bf-2989dd932411/yarn
73*387f9dfdSAndroid Build Coastguard Worker74     1097   0        4388     /hdfs/uuid/4a833770-767e-43b3-b696-dc98901bce26/yarn
74*387f9dfdSAndroid Build Coastguard Worker
75*387f9dfdSAndroid Build Coastguard Worker[..]
76*387f9dfdSAndroid Build Coastguard Worker
77*387f9dfdSAndroid Build Coastguard Worker
78*387f9dfdSAndroid Build Coastguard Worker
79*387f9dfdSAndroid Build Coastguard WorkerUSAGE message:
80*387f9dfdSAndroid Build Coastguard Worker
81*387f9dfdSAndroid Build Coastguard Worker# ./dirtop.py  -h
82*387f9dfdSAndroid Build Coastguard Workerusage: dirtop.py [-h] [-C] [-r MAXROWS] [-s {all,reads,writes,rbytes,wbytes}]
83*387f9dfdSAndroid Build Coastguard Worker                 [-p PID] -d ROOTDIRS
84*387f9dfdSAndroid Build Coastguard Worker                 [interval] [count]
85*387f9dfdSAndroid Build Coastguard Worker
86*387f9dfdSAndroid Build Coastguard WorkerFile reads and writes by process
87*387f9dfdSAndroid Build Coastguard Worker
88*387f9dfdSAndroid Build Coastguard Workerpositional arguments:
89*387f9dfdSAndroid Build Coastguard Worker  interval              output interval, in seconds
90*387f9dfdSAndroid Build Coastguard Worker  count                 number of outputs
91*387f9dfdSAndroid Build Coastguard Worker
92*387f9dfdSAndroid Build Coastguard Workeroptional arguments:
93*387f9dfdSAndroid Build Coastguard Worker  -h, --help            show this help message and exit
94*387f9dfdSAndroid Build Coastguard Worker  -C, --noclear         don't clear the screen
95*387f9dfdSAndroid Build Coastguard Worker  -r MAXROWS, --maxrows MAXROWS
96*387f9dfdSAndroid Build Coastguard Worker                        maximum rows to print, default 20
97*387f9dfdSAndroid Build Coastguard Worker  -s {all,reads,writes,rbytes,wbytes}, --sort {all,reads,writes,rbytes,wbytes}
98*387f9dfdSAndroid Build Coastguard Worker                        sort column, default all
99*387f9dfdSAndroid Build Coastguard Worker  -p PID, --pid PID     trace this PID only
100*387f9dfdSAndroid Build Coastguard Worker  -d ROOTDIRS, --root-directories ROOTDIRS
101*387f9dfdSAndroid Build Coastguard Worker                        select the directories to observe, separated by commas
102*387f9dfdSAndroid Build Coastguard Worker
103*387f9dfdSAndroid Build Coastguard Workerexamples:
104*387f9dfdSAndroid Build Coastguard Worker    ./dirtop -d '/hdfs/uuid/*/yarn'       # directory I/O top, 1 second refresh
105*387f9dfdSAndroid Build Coastguard Worker    ./dirtop -d '/hdfs/uuid/*/yarn' -C    # don't clear the screen
106*387f9dfdSAndroid Build Coastguard Worker    ./dirtop -d '/hdfs/uuid/*/yarn' 5     # 5 second summaries
107*387f9dfdSAndroid Build Coastguard Worker    ./dirtop -d '/hdfs/uuid/*/yarn' 5 10  # 5 second summaries, 10 times only
108*387f9dfdSAndroid Build Coastguard Worker    ./dirtop -d '/hdfs/uuid/*/yarn,/hdfs/uuid/*/data' # Running dirtop on two set of directories
109