sar查看内存指标

sar查看内存指标

Content #

sar 查看内存各个指标的变化情况。

# 间隔1秒输出一组数据
# -r表示显示内存使用情况,-S表示显示Swap使用情况
$ sar -r -S 1
04:39:56    kbmemfree   kbavail kbmemused  %memused kbbuffers  kbcached  kbcommit  %commit  kbactive   kbinact   kbdirty
04:39:57      6249676   6839824   1919632     23.50    740512     67316   1691736     10.22    815156    841868         4

04:39:56    kbswpfree kbswpused  %swppused  kbswpcad   %swpcad
04:39:57      8388604         0      0.00         0      0.00

sar 的输出结果是两个表格,第一个表格表示内存的使用情况,第二个表格表示 Swap 的使用情况。其中,各个指标名称前面的 kb 前缀,表示这些指标的单位是 KB。

  1. kbcommit,表示当前系统负载需要的内存。它实际上是为了保证系统内存不溢出,对需要内存的估计值。%commit,就是这个值相对总内存的百分比。
  2. kbactive,表示活跃内存,也就是最近使用过的内存,一般不会被系统回收。
  3. kbinact,表示非活跃内存,也就是不常访问的内存,有可能会被系统回收。

假定总的内存使用率(%memused)在不断增长,从开始的 23% 一直长到了 98%,并且主要内存都被缓冲区(kbbuffers)占用。具体来说:

  1. 刚开始,剩余内存(kbmemfree)不断减少,而缓冲区(kbbuffers)则不断增大,由此可知,剩余内存不断分配给了缓冲区。
  2. 一段时间后,剩余内存已经很小,而缓冲区占用了大部分内存。这时候, Swap 的使用开始逐渐增大,缓冲区和剩余内存则只在小范围内波动。

Viewpoints #

From #

20 | 案例篇:为什么系统的Swap变高了?(下)