• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ./cachetop -h
2usage: cachetop.py [-h] [interval]
3
4show Linux page cache hit/miss statistics including read and write hit % per
5processes in a UI like top.
6
7positional arguments:
8  interval    Interval between probes.
9
10optional arguments:
11  -h, --help  show this help message and exit
12
13examples:
14    ./cachetop             # run with default option of 5 seconds delay
15    ./cachetop 1           # print every second hit/miss stats
16
17# ./cachetop 5
1813:01:01 Buffers MB: 76 / Cached MB: 114 / Sort: HITS / Order: ascending
19PID      UID      CMD              HITS     MISSES   DIRTIES  READ_HIT%  WRITE_HIT%
20       1 root     systemd                 2        0        0     100.0%       0.0%
21     680 root     vminfo                  3        4        2      14.3%      42.9%
22     567 syslog   rs:main Q:Reg          10        4        2      57.1%      21.4%
23     986 root     kworker/u2:2           10     2457        4       0.2%      99.5%
24     988 root     kworker/u2:2           10        9        4      31.6%      36.8%
25     877 vagrant  systemd                18        4        2      72.7%      13.6%
26     983 root     python                148        3      143       3.3%       1.3%
27     981 root     strace                419        3      143      65.4%       0.5%
28     544 messageb dbus-daemon           455      371      454       0.1%       0.4%
29     243 root     jbd2/dm-0-8           457      371      454       0.4%       0.4%
30     985 root     (mount)               560     2457        4      18.4%      81.4%
31     987 root     systemd-udevd         566        9        4      97.7%       1.2%
32     988 root     systemd-cgroups       569        9        4      97.8%       1.2%
33     986 root     modprobe              578        9        4      97.8%       1.2%
34     287 root     systemd-journal       598      371      454      14.9%       0.3%
35     985 root     mount                 692     2457        4      21.8%      78.0%
36     984 vagrant  find                 9529     2457        4      79.5%      20.5%
37
38Above shows the run of `find /` on a newly booted system.
39
40Command used to generate the activity
41# find /
42
43Below shows the hit rate increases as we run find a second time and it gets it
44its pages from the cache.
45# ./cachetop.py
4613:01:01 Buffers MB: 76 / Cached MB: 115 / Sort: HITS / Order: ascending
47PID      UID      CMD              HITS     MISSES   DIRTIES  READ_HIT%  WRITE_HIT%
48     544 messageb dbus-daemon             2        2        1      25.0%      50.0%
49     680 root     vminfo                  2        2        1      25.0%      50.0%
50     243 root     jbd2/dm-0-8             3        2        1      40.0%      40.0%
51    1068 root     python                  5        0        0     100.0%       0.0%
52    1071 vagrant  bash                  350        0        0     100.0%       0.0%
53    1071 vagrant  find                12959        0        0     100.0%       0.0%
54
55
56Below shows that the dirty pages increases as a file of 80M is created running
57# dd if=/dev/urandom of=/tmp/c bs=8192 count=10000
58
59# ./cachetop.py 10
6013:01:01 Buffers MB: 77 / Cached MB: 193 / Sort: HITS / Order: ascending
61PID      UID      CMD              HITS     MISSES   DIRTIES  READ_HIT%  WRITE_HIT%
62     544 messageb dbus-daemon             9       10        7      10.5%      15.8%
63     680 root     vminfo                  9       10        7      10.5%      15.8%
64    1109 root     python                 22        0        0     100.0%       0.0%
65     243 root     jbd2/dm-0-8            25       10        7      51.4%       8.6%
66    1070 root     kworker/u2:2           85        0        0     100.0%       0.0%
67    1110 vagrant  bash                  366        0        0     100.0%       0.0%
68    1110 vagrant  dd                  42183    40000    20000      27.0%      24.3%
69
70The file copied into page cache was named /tmp/c with a size of 81920000 (81920000/4096) = 20000
71