xref: /aosp_15_r20/external/bcc/tools/cachestat_example.txt (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard WorkerDemonstrations of cachestat, the Linux eBPF/bcc version.
2*387f9dfdSAndroid Build Coastguard Worker
3*387f9dfdSAndroid Build Coastguard Worker
4*387f9dfdSAndroid Build Coastguard Workercachestat shows hits and misses to the file system page cache. For example:
5*387f9dfdSAndroid Build Coastguard Worker
6*387f9dfdSAndroid Build Coastguard Worker# cachestat
7*387f9dfdSAndroid Build Coastguard Worker    HITS   MISSES  DIRTIES HITRATIO   BUFFERS_MB  CACHED_MB
8*387f9dfdSAndroid Build Coastguard Worker    1132        0        4  100.00%          277       4367
9*387f9dfdSAndroid Build Coastguard Worker     161        0       36  100.00%          277       4372
10*387f9dfdSAndroid Build Coastguard Worker      16        0       28  100.00%          277       4372
11*387f9dfdSAndroid Build Coastguard Worker   17154    13750       15   55.51%          277       4422
12*387f9dfdSAndroid Build Coastguard Worker      19        0        1  100.00%          277       4422
13*387f9dfdSAndroid Build Coastguard Worker      83        0       83  100.00%          277       4421
14*387f9dfdSAndroid Build Coastguard Worker      16        0        1  100.00%          277       4423
15*387f9dfdSAndroid Build Coastguard Worker^C       0      -19      360    0.00%          277       4423
16*387f9dfdSAndroid Build Coastguard WorkerDetaching...
17*387f9dfdSAndroid Build Coastguard Worker
18*387f9dfdSAndroid Build Coastguard WorkerWhile tracing, there was a burst of misses in the fourth second, bringing
19*387f9dfdSAndroid Build Coastguard Workerthe hit ration down to 55%.
20*387f9dfdSAndroid Build Coastguard Worker
21*387f9dfdSAndroid Build Coastguard Worker
22*387f9dfdSAndroid Build Coastguard WorkerThis shows a 1 Gbyte uncached file that is read twice:
23*387f9dfdSAndroid Build Coastguard Worker
24*387f9dfdSAndroid Build Coastguard Worker(root) ~ # ./cachestat.py
25*387f9dfdSAndroid Build Coastguard Worker    HITS   MISSES  DIRTIES HITRATIO   BUFFERS_MB  CACHED_MB
26*387f9dfdSAndroid Build Coastguard Worker       1        0        0  100.00%            5        191
27*387f9dfdSAndroid Build Coastguard Worker     198    12136        0    1.61%            5        238
28*387f9dfdSAndroid Build Coastguard Worker       1    11007        3    0.01%            5        281
29*387f9dfdSAndroid Build Coastguard Worker       0     6384        0    0.00%            5        306
30*387f9dfdSAndroid Build Coastguard Worker       1    14464        0    0.01%            5        363
31*387f9dfdSAndroid Build Coastguard Worker       0    11776        0    0.00%            5        409
32*387f9dfdSAndroid Build Coastguard Worker       1    11712        0    0.01%            5        454
33*387f9dfdSAndroid Build Coastguard Worker      32    13184        0    0.24%            5        506
34*387f9dfdSAndroid Build Coastguard Worker       0    11232        0    0.00%            5        550
35*387f9dfdSAndroid Build Coastguard Worker       1    13056        0    0.01%            5        601
36*387f9dfdSAndroid Build Coastguard Worker      16    14720        0    0.11%            5        658
37*387f9dfdSAndroid Build Coastguard Worker      33     9920        0    0.33%            5        697
38*387f9dfdSAndroid Build Coastguard Worker       0    13248        0    0.00%            5        749
39*387f9dfdSAndroid Build Coastguard Worker       4    14144        0    0.03%            5        804
40*387f9dfdSAndroid Build Coastguard Worker       0     9728        0    0.00%            5        842
41*387f9dfdSAndroid Build Coastguard Worker       1    10816        0    0.01%            5        885
42*387f9dfdSAndroid Build Coastguard Worker     808    13504        1    5.65%            5        938
43*387f9dfdSAndroid Build Coastguard Worker       0    11409        0    0.00%            5        982
44*387f9dfdSAndroid Build Coastguard Worker       0    11520        0    0.00%            5       1027
45*387f9dfdSAndroid Build Coastguard Worker       0    15616        0    0.00%            5       1088
46*387f9dfdSAndroid Build Coastguard Worker       1     9792        0    0.01%            5       1126
47*387f9dfdSAndroid Build Coastguard Worker       0     8256        0    0.00%            5       1158
48*387f9dfdSAndroid Build Coastguard Worker       1     9600        0    0.01%            5       1196
49*387f9dfdSAndroid Build Coastguard Worker     599     4804        0   11.09%            5       1215
50*387f9dfdSAndroid Build Coastguard Worker       1        0        0  100.00%            5       1215
51*387f9dfdSAndroid Build Coastguard Worker       0        0        0    0.00%            5       1215
52*387f9dfdSAndroid Build Coastguard Worker       3        1        0   75.00%            5       1215
53*387f9dfdSAndroid Build Coastguard Worker   79536       34        0   99.96%            5       1215
54*387f9dfdSAndroid Build Coastguard Worker   87693      274        4   99.69%            6       1214
55*387f9dfdSAndroid Build Coastguard Worker   89018     3546        0   96.17%            7       1227
56*387f9dfdSAndroid Build Coastguard Worker   33531      201        4   99.40%            7       1228
57*387f9dfdSAndroid Build Coastguard Worker      22       44        0   33.33%            8       1228
58*387f9dfdSAndroid Build Coastguard Worker       0        0        0    0.00%            8       1228
59*387f9dfdSAndroid Build Coastguard Worker      73       21        2   77.66%            8       1228
60*387f9dfdSAndroid Build Coastguard Worker
61*387f9dfdSAndroid Build Coastguard WorkerIt took 24 seconds to read the 1 Gbyte file the first time, shown in the output
62*387f9dfdSAndroid Build Coastguard Workerby the high MISSES rate and low HITRATIO. The second time it took 4 seconds,
63*387f9dfdSAndroid Build Coastguard Workerand the HITRATIO was around 99%.
64*387f9dfdSAndroid Build Coastguard Worker
65*387f9dfdSAndroid Build Coastguard Worker
66*387f9dfdSAndroid Build Coastguard WorkerThis output shows a 1 Gbyte file being created and added to the page cache:
67*387f9dfdSAndroid Build Coastguard Worker
68*387f9dfdSAndroid Build Coastguard Worker(root) ~ # ./cachestat.py
69*387f9dfdSAndroid Build Coastguard Worker    HITS   MISSES  DIRTIES HITRATIO   BUFFERS_MB  CACHED_MB
70*387f9dfdSAndroid Build Coastguard Worker       1        0        0  100.00%            8        209
71*387f9dfdSAndroid Build Coastguard Worker       0        0   165584    0.00%            8        856
72*387f9dfdSAndroid Build Coastguard Worker       0        0    96505    0.00%            8       1233
73*387f9dfdSAndroid Build Coastguard Worker       0        0        0    0.00%            8       1233
74*387f9dfdSAndroid Build Coastguard Worker
75*387f9dfdSAndroid Build Coastguard WorkerNote the high rate of DIRTIES, and the CACHED_MB size increases by 1024 Mbytes.
76*387f9dfdSAndroid Build Coastguard Worker
77*387f9dfdSAndroid Build Coastguard Worker
78*387f9dfdSAndroid Build Coastguard WorkerUSAGE message:
79*387f9dfdSAndroid Build Coastguard Worker
80*387f9dfdSAndroid Build Coastguard Worker# cachestat -h
81*387f9dfdSAndroid Build Coastguard Workerusage: cachestat.py [-h] [-T] [interval] [count]
82*387f9dfdSAndroid Build Coastguard Worker
83*387f9dfdSAndroid Build Coastguard WorkerCount cache kernel function calls
84*387f9dfdSAndroid Build Coastguard Worker
85*387f9dfdSAndroid Build Coastguard Workerpositional arguments:
86*387f9dfdSAndroid Build Coastguard Worker  interval         output interval, in seconds
87*387f9dfdSAndroid Build Coastguard Worker  count            number of outputs
88*387f9dfdSAndroid Build Coastguard Worker
89*387f9dfdSAndroid Build Coastguard Workeroptional arguments:
90*387f9dfdSAndroid Build Coastguard Worker  -h, --help       show this help message and exit
91*387f9dfdSAndroid Build Coastguard Worker  -T, --timestamp  include timestamp on output
92