Linux 里 free 命令结果阐释
目录
现象
示例
Linux 虚拟内存简介
现象
Linux 机器上 free 命令显示 Mem: 行里的 free 栏位值快没了!情况危急,我是否需要立刻采取措施?
在回答此问题之前,让我们先来看一个例子。
示例
下面的结果为在 CentOS 系统上 free
的输出:
total used free shared buffers cached
Mem: 8173440 5546388 2627052 0 276424 2492928
-/+ buffers/cache: 2777036 5396404
Swap: 4104596 0 4104596
第一行 Mem
total
:总内存 8173440KB,不包括为内核保留的那一部分,因此总会比实际总内存小一点。此例中,实际物理内存大小为 8388608KB。
used
: 当前被占用的内存,5546388KB。
free
: 未被使用的内存,2627052KB。
total
= used
+ free
,这里即 8173440 = 5546388 + 2627052
shared / buffers / cached
: 这些值包含在 used
里。
第二行 -/+ buffers/cache
-/+ buffers/cache: used
下面的值等于 Mem: used
- (buffers + cached)
,即 5546388 - (276424+ 2492928),正好等于 2777036。
-/+ buffers/cache: free
下面的值等于 Mem: free
- (buffers + cached)
,即 2627052 + (276424 + 2492928),正好等于 5396404。
看到这里,我们知道,其实机器的物理内存还有很多,完全不用大惊小怪。
第三行 Swap
Swap
: 交换使用情况,即内存里临时被置换到硬盘的数据。
注意,在其他 Linux 系统中,free
也有可能输出下面的格式:
total used free shared buff/cache available
Mem: 3553 1192 857 16 1504 2277
Swap: 3689 0 3689
这里,available
指的是可分配的实际内存。
Linux 虚拟内存简介
和其他现代操作系统一样,Linux 就像总是尽量使用空闲的 RAM 来缓存对象,因此 Mem: free
的值总是很小。-/+ buffers/cache:
显示的值里没有考虑缓存(buffers + cache
)的占用,因为缓存在需要的时候会自动释放。
如果 -/+ buffers/cache: free
的值很小,那么 Linux 的的可用内存就是真的小了,此时要引起注意。