sarコマンドの結果からメモリの負荷を見る
% sar -f /var/log/sysstat/sa07 -r Linux 2.6.32-24-generic (bluesky) 2010年09月07日 _x86_64_ (2 CPU) 10時43分23秒 LINUX RESTART 10時45分01秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 10時55分01秒 1023380 1033504 50.25 42388 416800 1541448 13.86 11時05分01秒 928564 1128320 54.86 44812 444232 1635300 14.70 平均値: 975972 1080912 52.55 43600 430516 1588374 14.28
メモリ使用量はkbbuffersとkbcachedを足したものをkbmemusedから
引いたものになります。
上記の10時55分01秒のデータを使用して見ると
1033504 - ( 42388 + 416800 ) = 574316
という結果になります。この数字はページキャッシュ等を引いた実質のメモリ使用量に
なります。この値が意図しない結果になってないか?右肩上がりで徐々に増えて
メモリーリークを起こしていないか?等を確認します。
kbcachedはページキャッシュで使用されているメモリになります。
LinuxはI/Oを使えば使うほどページキャッシュしてI/Oをディスクに発生させないで
メモリ上で効率よくキャッシュして処理を行なうようになります。
空いてるメモリはガンガンOS側でディスクキャッシュに使ってくれる訳です。
なので%memusedが限りなく大きくなっていても焦らずに実質のメモリ使用量を
確認する必要があります。
kbbuffersは一度アクセスのあったディスクブロックをキャッシュしています。
こちらもkbcachedと対になって使用されるメモリになります。
次にスワップの状態をみます。
% sar -f /var/log/sysstat/sa07 -S Linux 2.6.32-24-generic (bluesky) 2010年09月07日 _x86_64_ (2 CPU) 10時43分23秒 LINUX RESTART 10時45分01秒 kbswpfree kbswpused %swpused kbswpcad %swpcad 10時55分01秒 9068652 0 0.00 0 0.00 11時05分01秒 9068652 0 0.00 0 0.00 平均値: 9068652 0 0.00 0 0.00
kbswpfreeが空きスワップ領域、kbswpusedが使用スワップ領域になります。
%swpusedは使用されているスワップ領域の割合です。
上記の例だとまったくスワップは使用していません。
さらにスワップの状態をみてみます。
% sar -f /var/log/sysstat/sa07 -W Linux 2.6.32-24-generic (bluesky) 2010年09月07日 _x86_64_ (2 CPU) 10時43分23秒 LINUX RESTART 10時45分01秒 pswpin/s pswpout/s 10時55分01秒 0.00 0.00 11時05分01秒 0.00 0.00 平均値: 0.00 0.00