# ./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
    

# ./cachestat 1
    HITS   MISSES  DIRTIES READ_HIT% WRITE_HIT%   BUFFERS_MB  CACHED_MB
       0       58        0     0.0%   100.0%            0      11334
  146113        0        0   100.0%     0.0%            0      11334
  244143        0        0   100.0%     0.0%            0      11334
  216833        0        0   100.0%     0.0%            0      11334
  248209        0        0   100.0%     0.0%            0      11334
  205825        0        0   100.0%     0.0%            0      11334
  286654        0        0   100.0%     0.0%            0      11334
  275850        0        0   100.0%     0.0%            0      11334
  272883        0        0   100.0%     0.0%            0      11334
  261633        0        0   100.0%     0.0%            0      11334
  252826        0        0   100.0%     0.0%            0      11334
  235253       70        3   100.0%     0.0%            0      11335
  204946        0        0   100.0%     0.0%            0      11335
       0        0        0     0.0%     0.0%            0      11335
       0        0        0     0.0%     0.0%            0      11335
       0        0        0     0.0%     0.0%            0      11335

Above shows the reading of a 12GB file already cached in the OS page cache and again below with timestamps.

# ./cachestat -T 1
TIME         HITS   MISSES  DIRTIES READ_HIT% WRITE_HIT%   BUFFERS_MB  CACHED_MB
16:07:10        0        0        0     0.0%     0.0%            0      11336
16:07:11        0        0        0     0.0%     0.0%            0      11336
16:07:12   117849        0        0   100.0%     0.0%            0      11336
16:07:13   212558        0        0   100.0%     0.0%            0      11336
16:07:14   302559        1        0   100.0%     0.0%            0      11336
16:07:15   309230        0        0   100.0%     0.0%            0      11336
16:07:16   305701        0        0   100.0%     0.0%            0      11336
16:07:17   312754        0        0   100.0%     0.0%            0      11336
16:07:18   308406        0        0   100.0%     0.0%            0      11336
16:07:19   298185        0        0   100.0%     0.0%            0      11336
16:07:20   236128        0        0   100.0%     0.0%            0      11336
16:07:21   257616        0        0   100.0%     0.0%            0      11336
16:07:22   179792        0        0   100.0%     0.0%            0      11336

Command used to generate the activity
# dd if=/root/mnt2/testfile of=/dev/null bs=8192
1442795+0 records in
1442795+0 records out
11819376640 bytes (12 GB) copied, 3.9301 s, 3.0 GB/s

Below shows the dirty ratio increasing as we add a file to the page cache 
# ./cachestat.py
    HITS   MISSES  DIRTIES  READ_HIT% WRITE_HIT%   BUFFERS_MB  CACHED_MB
    1074       44       13      94.9%       2.9%            1        223
    2195      170        8      92.5%       6.8%            1        143
     182       53       56      53.6%       1.3%            1        143
   62480    40960    20480      40.6%      19.8%            1        223
       7        2        5      22.2%      22.2%            1        223
     348        0        0     100.0%       0.0%            1        223
       0        0        0       0.0%       0.0%            1        223
       0        0        0       0.0%       0.0%            1        223
       0        0        0       0.0%       0.0%            1        223
       0        0        0       0.0%       0.0%            1        223

The file copied into page cache was named 80m with a size of 83886080 (83886080/4096) = 20480, this matches what we see under dirties
