[Linux]メモリ使用のカラクリ

www.atmarkit.co.jp&9
以下転載
--
freeの結果が
total used free shared buffers cached
Mem: 513744① 499040② 14704③ 0④ 130588⑤ 191128⑥
-/+ buffers/cache: 177324⑦ 336420⑧
Swap: 522104⑨ 83960⑩ 438144⑪
①総メモリ量
②使用済み
③空き
④共有用
⑤バッファ用
⑥キャッシュ用
⑦アプリでの使用量
⑧アプリで使える空き容量
⑨スワップ容量
⑩スワップ使用済み
⑪スワップ空き
先に進む前にこの①~⑪の定義は合っていますでしょうか?
次に私は以下のように理解したのですがいかがでしょうか?
1.「①総メモリ量」から「⑦アプリでの使用量」を引いた分が④⑤⑥に割り振われる
ちなみに①-⑦=④+⑤+⑥(513744-177324)=(14704+130588+191128)=336420
2.この336MB分はLinuxがディスクのI/Oの為に用意している領域である
3.「⑦アプリでの使用量」はtop n 1 bコマンドで表示された明細部分の合計と
ほぼ同じとなる
つまり今回の場合だと「全メモリ中65.8%がディスクのI/Oに費やされている」と結論付けて良いのでしょうか?
なお、buffersとcachedの違いですが、それぞれ用語集を参照すると
buffer:複数の機器やソフトウェアの間でデータをやり取りするときに、処理速度や転送速度の差を補うためにデータを一時的に保存しておく記憶装置や記憶領域のこと。
cache:使用頻度の高いデータを高速な記憶装置に蓄えておくことにより、いちいち低速な装置から読み出す無駄を省いて高速化すること。また、その際に使われる高速な記憶装置。
となっておりました。