free命令主要用于显示内存使用的情况,包括实体内存(物理内存)、交换内存、共享内存和使用缓冲区等。
语法:free [参数]
参数说明:
-b:显示单位为B
-k:显示单位为KB
-m:显示单位为MB
-g:显示单位为GB
-h:自动调整合适的显示单位
-t:显示内存使用总和
-l:显示低内存和高内存统计数据
-s:持续显示内存数据
-c:持续显示内存数据次数
-V:显示版本信息
--help:显示帮助信息
[root@CentOS7 ~]# free total used free shared buff/cache availableMem: 1877572 372796 1083568 13212 421208 1297644Swap: 4194300 0 4194300
[root@CentOS7 ~]# free -t total used free shared buff/cache availableMem: 1877572 372608 1083740 13212 421224 1297816Swap: 4194300 0 4194300Total: 6071872 372608 5278040
[root@CentOS7 ~]# free -h total used free shared buff/cache availableMem: 1.8G 364M 1.0G 12M 411M 1.2GSwap: 4.0G 0B 4.0G
[root@CentOS7 ~]# free -s 2 total used free shared buff/cache availableMem: 1877572 373152 1083196 13212 421224 1297272Swap: 4194300 0 4194300 total used free shared buff/cache availableMem: 1877572 373152 1083196 13212 421224 1297272Swap: 4194300 0 4194300
-s参数后面的数字代表,每隔多少秒执行一次。
5、显示多少次之后终止查看
[root@CentOS7 ~]# free -c 2 total used free shared buff/cache availableMem: 1877572 372776 1083592 13212 421204 1297668Swap: 4194300 0 4194300 total used free shared buff/cache availableMem: 1877572 372776 1083592 13212 421204 1297668Swap: 4194300 0 4194300
[root@CentOS7 ~]# free -h total used free shared buff/cache availableMem: 1.8G 364M 1.0G 12M 411M 1.2GSwap: 4.0G 0B 4.0G
执行free命令后,输出这么多列,分别都代表什么意思呢,下面咱们就来简单的介绍一下。
4.1、Mem行解释
列名 | 含义 | 说明 |
total | 总内存 | 系统可用的物理内存总量 |
used | 已使用内存 | 正在被使用的内存(total - free - buff/cache) |
free | 空闲内存 | 完全未被使用的内存 |
shared | 共享内存 | 主要用于 tmpfs 文件系统等共享内存 |
buff/cache | 缓存 | Buffer(块设备缓存)+ Cache(文件页缓存) |
available | 可用内存 | 可用于启动新程序的估算内存,这是真正意义上的“剩余可用内存” |
注:注意区分free和available
在工作中容易误解:看到free很少就以为内存不足,实际上Linux会积极使用空闲内存作为buff/cache来提升性能,这些缓存可以在程序需要时被释放。
free:真正完全未使用的内存,通常数值较小
available:更有参考价值的指标,表示在不使用swap的情况下,还可以分配多少内存给新程序
4.2、Swap行解释
列名 | 说明 |
total | 交换分区总大小 |
used | 已使用的交换空间 |
free | 空闲的交换空间 |
注:Swap 使用较多通常表示物理内存紧张。
看available列:如果长期接近0,说明内存不足
看swap used:如果持续增长且数值较大,说明物理内存紧张
一般buff/cache占内存大部分是正常的,无需担心
喜欢古诗词的同学们,欢迎移步「纸间有糖」,愿这里的文字甜到你心里。