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に増加。やはり本当にキャッシュしてくれている。