一、查看服务器空闲内存
[root@test134 ~]# free
total used free shared buffers cached
Mem: 1916648 1774200 142448 0 14904 163916
-/+ buffers/cache: 1595380 321268
Swap: 2097144 62320 2034824
-/+ buffers/cache: used=1595380≈1.5G
free=321268≈313.7M
二、如何看服务器是否存在内存泄露
[root@test134 ~]# vmstat 2 -S M
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 60 133 15 162 0 0 0 1 6 0 0 0 99 0 0
0 0 60 133 15 162 0 0 0 0 203 364 0 0 100 0 0
如果swap中cache不断下降,当达到一定值时,系统swpd值不断上升,上升到一个峰值的时候,程序会报错退出,系统的free值回到初始值。
Linux对内存的消耗是:先消耗Cache或Free,再消耗Swap,然后报错退出,退出后把内存还回给Free,然后swap回归到某个值(这个值不是很大)。内存泄露会导致程序退出,或者影响其它进程(系统可用内存减少,导致其它程序申请内存失败),但它不会把OS crash掉。