一.free命令简介

通过读取/proc/meminfo文件中信息,显示系统中空闲物理内存总量,已使用的内存总量,swap空间,内核使用的缓存和缓冲

格式

free -[b|k|m]

显示

hadoop@hbase5:/data$ free
             total       used       free     shared    buffers     cached
Mem:      99180544   18640148   80540396          0      71096    8164956
-/+ buffers/cache:   10404096   88776448
Swap:      8388604          0    8388604
hadoop@hbase5:/data$ free -b
             total       used       free     shared    buffers     cached
Mem:    101560877056 19087069184 82473807872          0   72843264 8360968192
-/+ buffers/cache: 10653257728 90907619328
Swap:   8589930496          0 8589930496
hadoop@hbase5:/data$ free -k
             total       used       free     shared    buffers     cached
Mem:      99180544   18641872   80538672          0      71184    8165088
-/+ buffers/cache:   10405600   88774944
Swap:      8388604          0    8388604
hadoop@hbase5:/data$ free -m
             total       used       free     shared    buffers     cached
Mem:         96856      18239      78616          0         69       7973
-/+ buffers/cache:      10196      86659
Swap:         8191          0       8191

第一行: 内存总计 已经使用 空闲 多个进程共享的内存总额 缓冲 缓存
第二行: 除去缓冲缓存
第三行: swap空间使用情况

内存相关

关于内存的几个常见问题:

空闲空间少 
其实linux中空闲的物理空间经常是很少的,和linux使用内存的思路有关 
linux会尽量提高内存使用率,经常会把磁盘上的内容缓存到内存,用来加速 
当内存不足时,linux就会释放缓存部分,让给真正需要的程序使用
buffer 和 cache 
buffer 缓存的是磁盘文件的元数据,例如文件属性、目录结构等等 
cache 缓存的是真正的文件内容
关注要点 
MemTotal:总内存大小 
MemFree: 空闲内存大小 
Buffers和Cached:磁盘缓存的大小
如何判断内存真正不足 
内存不足主要有2个明显的表现 
(1)持续的内存换入换出 
(2)较多的主缺页中断 
主缺页中断的概念:缺页中断包含主/次缺页中断 
次缺页中断,是在内存中可以找到目标页 
主缺页中断,是在内存中找不到,需要到磁盘中找 
所以较多的主缺页中断意味着较多的访问磁盘