Linux-Free
- Linux-Free
- 使用场景
-
- 1、查看内存使用情况
- [2、每隔 2 秒刷新一次内存状态](#2、每隔 2 秒刷新一次内存状态)
- [3、每隔 1 秒刷新,共输出 5 次](#3、每隔 1 秒刷新,共输出 5 次)
Linux-Free
1、作用
free 是 Linux 系统中用于查看内存和交换空间使用情况的核心命令,通过不同参数可以调整输出格式、单位和刷新频率,满足不同的监控需求。
2、格式
bash
free [参数]
3、参数
a. 无参数(默认)
直接执行 free,会以 千字节(KB) 为单位输出内存、交换分区的总容量、已用、空闲等信息。
b. 单位转换参数
这类参数用于调整输出的内存单位,避免手动换算,提升可读性。
| 参数 | 作用 | 单位 |
|---|---|---|
-b |
以字节(Bytes)为单位显示 | B |
-k |
以千字节(KB)为单位显示(默认) | KB |
-m |
以兆字节(MB)为单位显示 | MB |
-g |
以吉字节(GB)为单位显示 | GB |
-t |
以太字节(TB)为单位显示 | TB |
-h |
人性化显示,自动选择合适单位(推荐) | B/KB/MB/GB/TB |
c. 缓存/缓冲区相关参数
Linux 中 buff/cache 包含缓冲区(buffer)和页缓存(cache),这类参数用于区分显示二者。
| 参数 | 作用 |
|---|---|
-w |
宽格式显示 ,将 buff/cache 拆分为 buffers 和 cache 两列,更细致 |
-b 结合 -w |
宽格式+字节单位 |
d. 动态监控参数
用于持续观察内存变化,适合排查内存泄漏、突发占用等问题。
| 参数 | 作用 |
|---|---|
-s <秒数> |
周期性输出 ,每隔指定秒数刷新一次,直到手动终止(Ctrl+C) |
-c <次数> |
配合 -s 使用,指定输出的总次数,达到次数后自动退出 |
e. 其他辅助参数
| 参数 | 作用 |
|---|---|
-t |
在输出末尾增加 Total 行,汇总内存和交换分区的总容量、已用、空闲 |
-l |
显示 高低内存统计,仅对 32 位系统有效(64 位系统无实际意义) |
4、输出说明
以 free -h 的输出为例,核心字段含义:
| 字段 | 含义 |
|---|---|
total |
总物理内存/交换分区容量 |
used |
已使用的内存(包含程序占用+缓存/缓冲区占用) |
free |
完全未被使用的"空闲内存" |
shared |
进程间共享的内存容量(如 tmpfs 占用) |
buff/cache |
缓冲区+页缓存容量,系统可随时回收用于程序 |
available |
实际可用内存 ,即程序可申请的内存(≈ free + buff/cache 可回收部分),比 free 更有参考价值 |
使用场景
1、查看内存使用情况
bash
`free -h`
total used free shared buff/cache available
Mem: 7.8Gi 1.5Gi 3.9Gi 64Mi 2.4Gi 5.9Gi
Swap: 2.0Gi 0B 2.0Gi
`free -hw` # 宽格显示
total used free shared buffers cache available
Mem: 7.8Gi 1.5Gi 3.9Gi 64Mi 128Mi 2.3Gi 5.9Gi
Swap: 2.0Gi 0B 2.0Gi
2、每隔 2 秒刷新一次内存状态
bash
`free -h -s 2`
3、每隔 1 秒刷新,共输出 5 次
bash
`free -h -s 1 -c 5`