92 lines
3.9 KiB
Plaintext
92 lines
3.9 KiB
Plaintext
Demonstrations of cachestat, the Linux eBPF/bcc version.
|
|
|
|
|
|
cachestat shows hits and misses to the file system page cache. For example:
|
|
|
|
# cachestat
|
|
HITS MISSES DIRTIES HITRATIO BUFFERS_MB CACHED_MB
|
|
1132 0 4 100.00% 277 4367
|
|
161 0 36 100.00% 277 4372
|
|
16 0 28 100.00% 277 4372
|
|
17154 13750 15 55.51% 277 4422
|
|
19 0 1 100.00% 277 4422
|
|
83 0 83 100.00% 277 4421
|
|
16 0 1 100.00% 277 4423
|
|
^C 0 -19 360 0.00% 277 4423
|
|
Detaching...
|
|
|
|
While tracing, there was a burst of misses in the fourth second, bringing
|
|
the hit ration down to 55%.
|
|
|
|
|
|
This shows a 1 Gbyte uncached file that is read twice:
|
|
|
|
(root) ~ # ./cachestat.py
|
|
HITS MISSES DIRTIES HITRATIO BUFFERS_MB CACHED_MB
|
|
1 0 0 100.00% 5 191
|
|
198 12136 0 1.61% 5 238
|
|
1 11007 3 0.01% 5 281
|
|
0 6384 0 0.00% 5 306
|
|
1 14464 0 0.01% 5 363
|
|
0 11776 0 0.00% 5 409
|
|
1 11712 0 0.01% 5 454
|
|
32 13184 0 0.24% 5 506
|
|
0 11232 0 0.00% 5 550
|
|
1 13056 0 0.01% 5 601
|
|
16 14720 0 0.11% 5 658
|
|
33 9920 0 0.33% 5 697
|
|
0 13248 0 0.00% 5 749
|
|
4 14144 0 0.03% 5 804
|
|
0 9728 0 0.00% 5 842
|
|
1 10816 0 0.01% 5 885
|
|
808 13504 1 5.65% 5 938
|
|
0 11409 0 0.00% 5 982
|
|
0 11520 0 0.00% 5 1027
|
|
0 15616 0 0.00% 5 1088
|
|
1 9792 0 0.01% 5 1126
|
|
0 8256 0 0.00% 5 1158
|
|
1 9600 0 0.01% 5 1196
|
|
599 4804 0 11.09% 5 1215
|
|
1 0 0 100.00% 5 1215
|
|
0 0 0 0.00% 5 1215
|
|
3 1 0 75.00% 5 1215
|
|
79536 34 0 99.96% 5 1215
|
|
87693 274 4 99.69% 6 1214
|
|
89018 3546 0 96.17% 7 1227
|
|
33531 201 4 99.40% 7 1228
|
|
22 44 0 33.33% 8 1228
|
|
0 0 0 0.00% 8 1228
|
|
73 21 2 77.66% 8 1228
|
|
|
|
It took 24 seconds to read the 1 Gbyte file the first time, shown in the output
|
|
by the high MISSES rate and low HITRATIO. The second time it took 4 seconds,
|
|
and the HITRATIO was around 99%.
|
|
|
|
|
|
This output shows a 1 Gbyte file being created and added to the page cache:
|
|
|
|
(root) ~ # ./cachestat.py
|
|
HITS MISSES DIRTIES HITRATIO BUFFERS_MB CACHED_MB
|
|
1 0 0 100.00% 8 209
|
|
0 0 165584 0.00% 8 856
|
|
0 0 96505 0.00% 8 1233
|
|
0 0 0 0.00% 8 1233
|
|
|
|
Note the high rate of DIRTIES, and the CACHED_MB size increases by 1024 Mbytes.
|
|
|
|
|
|
USAGE message:
|
|
|
|
# cachestat -h
|
|
usage: cachestat.py [-h] [-T] [interval] [count]
|
|
|
|
Count cache kernel function calls
|
|
|
|
positional arguments:
|
|
interval output interval, in seconds
|
|
count number of outputs
|
|
|
|
optional arguments:
|
|
-h, --help show this help message and exit
|
|
-T, --timestamp include timestamp on output
|