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

この情報からいつスワップを利用したかの状態がわかるので
時間軸でスワップを追いかけたい時等に使用します。