监控内存和SWAP使用情况及swap优化

查看物理内存使用情况

通常使用free命令来查看机器的内存使用情况

[root@mio-254 ~]# free
             total       used       free     shared    buffers     cached
Mem:      32891588    8041552   24850036          0     185820     824908
-/+ buffers/cache:    7030824   25860764
Swap:     20971512          0   20971512

使用vmstat查看swap的I/O情况

[root@mio-254 ~]# vmstat 
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 24850136 185820 824908    0    0     0     3    3    7  3  0 97  0  0

其中si和so都是0,说明swap没有真正的I/O动作,设备的性能不会收到影响

在sysctl中有一个参数,叫做vm.swapiness,默认为60,当内存富足时,建议设置为0,这样可以尽量避免Linux主动使用swap

[root@MIO-2 ~]# cat /proc/sys/vm/swappiness 
60
[root@MIO-2 ~]# echo 0 > /proc/sys/vm/swappiness 
[root@MIO-2 ~]# cat /proc/sys/vm/swappiness 
0