# ./cachestat -h
USAGE: ./cachestat [-T] [ interval [count] ]

show Linux page cache hit/miss statistics including read and write hit %

optional arguments:
  -T              include timestamp on output

examples:
    ./cachestat             # run with default option of 5 seconds delay
    ./cachestat -T          # run with default option of 5 seconds delay with timestamps
    ./cachestat 1           # print every second hit/miss stats
    ./cachestat -T 1        # include timestamps with one second samples
    ./cachestat 1 5         # run with interval of one second for five iterations
    ./cachestat -T 1 5      # include timestamps with interval of one second for five iterations
    

Following commands show a 2GB file being read into the page cache.

Command used to generate activity:
# dd if=/root/tmpfile of=/dev/null bs=8192

Output from cachestat running simultatenously:
# ./tools/cachestat.py 1
   TOTAL   MISSES     HITS  DIRTIES   BUFFERS_MB  CACHED_MB
       1        0        1        0            8        283
       0        0        0        0            8        283
       0        0        0        2            8        283
       0        0        0        0            8        283
   10009     9173      836        2            9        369
  152032   152032        0        0            9       1028
  157408   157405        3        0            9       1707
  150432   150432        0        0            9       2331
       0        0        0        0            9       2331
       1        1        0        1            9       2331
       0        0        0        0            9       2331
       0        0        0        0            9       2331
       0        0        0        0            9       2331

The misses counter reflects a 2GB file being read and almost everything being
a page cache miss.

Below shows an example of a new 100MB file added to page cache, by using
the command: dd if=/dev/zero of=/root/tmpfile2 bs=4k count=$((256*100))

# ./tools/cachestat.py 1
   TOTAL   MISSES     HITS  DIRTIES   BUFFERS_MB  CACHED_MB
       0        0        0        0           15       2440
       0        0        0        0           15       2440
       0        0        0        0           15       2440
    1758        0     1758    25603           15       2540
       0        0        0        0           15       2540
       0        0        0        0           15       2541

~25600 pages are being dirtied (writes) which corresponds to the 100MB file
added to the page cache.