Linux の ページキャッシュの実験

  • Linuxではメモリに余裕があると一度読み込んだファイルをキャッシュしてくれるらしい。

ということで実験してみた。

OS起動直後で何もしていない状態を確認。cache は、27328で約27MB。

# watch vmstat

Every 2.0s: vmstat                                              Tue Dec  4 13:21:57 2007

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  0      0 718088   7512  27328    0    0   172    67 1025   117  2 21 73  3

そして、手ごろな大きさのファイルを読み込む。それぞれ上から、10485760、5242880、5242880、23771421 バイトで、合計約43.7MB。

# cat /var/lib/ibdata1 > /dev/null
# cat /var/lib/ib_logfile0 > /dev/null
# cat /var/lib/ib_logfile1 > /dev/null
# cat /var/log/maillog > /dev/null
# watch vmstat

Every 2.0s: vmstat                                              Tue Dec  4 13:23:40 2007

procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
 0  0      0 674120   7720  71060    0    0   266    47 1021    81  2 14 82  2

読み込むたびに約ファイルサイズ分cacheの値が増加しているのを確認。最終的に約71MBに増加。やはり本当にキャッシュしてくれている。