一聚教程网:一个值得你收藏的教程网站

热门教程

Linux 如何使用 free 命令查看 swap 交换区使用率

时间:2026-08-29 19:39:48 编辑:袖梨 来源:一聚教程网

直接看free -h输出中Swap行的used和total即可计算使用率,例如480M/2.0G≈24%;若接近90%需警惕内存压力,但swap占用高不等于性能瓶颈,关键看vmstat中si/so是否持续大于100KB/s。

直接看 `free -h` 输出中 Swap 行的 used 和 total 就行,这是最快、最直观的方式。

怎么看 swap 使用率(一眼识别)

在终端运行:

free -h

找到输出中的 Swap 行,例如:

Swap: 2.0G 480M 1.5G
  1. total:交换区总大小(这里是 2.0G)
  2. used:当前已用空间(这里是 480M)
  3. free:剩余可用空间(这里是 1.5G)

使用率 ≈ used ÷ total。比如 480M / 2.0G ≈ 24%,属于正常范围;若接近 90%(如 1.8G / 2.0G),就要警惕内存压力了。

注意别被“available”误导

`free` 输出里 Mem 行的 available 是物理内存估算值,和 swap 无关。Swap 是否启用、用了多少,只看 Swap 行的 used 列——哪怕 used 是 0B,也说明当前没走磁盘交换;哪怕 used 是 1.2G,只要 si/so 为 0,也可能只是历史残留,未必正在拖慢系统。

想持续观察 swap 变化?加刷新参数

  1. 每 2 秒刷新一次:free -h -s 2
  2. 刷新 5 次后自动退出:free -h -s 2 -c 5
  3. 配合宽模式看更全字段:free -h -w -s 1

这样能直观看到 used 值是否跳变,再结合 vmstat 1 看 si/so 列,才能判断是不是真在频繁换页。

swap 占用高 ≠ 必须扩容

真正影响性能的是交换活动(swap in/out),不是占用数字本身:

  1. 如果 vmstat 1 5 中 si 和 so 长期为 0,哪怕 used 达到 1.5G,也不代表当前有瓶颈
  2. 如果 si 或 so 持续大于 100 KB/s,说明内核正反复搬运内存页,磁盘 I/O 上升、响应变卡,这时才需要查内存大户或考虑加 RAM
  3. zram/zswap 等压缩交换机制会让 free 把它算进 Swap,但实际不占磁盘,/proc/swaps 可能不显示——这种情况 used 高但无 I/O 压力,属正常

热门栏目