在管理和维护 CentOS 服务器时,了解系统的资源使用状况至关重要,Swap(交换空间)的使用情况是一个关键指标,Swap 本质上是当物理内存(RAM)耗尽时,系统利用硬盘空间来临时存放内存中不活跃数据的一种机制,虽然它能防止系统在内存不足时崩溃,但过度依赖 Swap 会显著拖慢系统性能,因为硬盘读写速度远低于内存,定期查看和监控 Swap 的使用情况是每位系统管理员或服务器运维人员的必备技能。
本文将详细介绍几种在 CentOS 系统上查看 Swap 信息的实用方法,帮助你快速掌握系统状态。

使用 free 命令(最常用)
free 命令是 Linux 系统上查看内存(包括 Swap)使用情况最直接、最常用的工具。
- 打开终端: 通过 SSH 登录你的 CentOS 服务器。
- 输入命令:
free -h
- 查看输出:
total used free shared buff/cache available Mem: 1.8Gi 1.1Gi 121Mi 16Mi 631Mi 531Mi Swap: 2.0Gi 256Mi 1.7Gi- 关键行:
Swap:这一行专门显示 Swap 信息。 - total: 表示系统配置的总 Swap 空间大小 (2.0Gi)。
- used: 表示当前已经被使用的 Swap 空间大小 (256Mi)。
- free: 表示当前剩余的、可用的 Swap 空间大小 (1.7Gi)。
-h参数: 这个参数非常重要,它让free命令以人类可读的格式 (GiB, MiB) 显示大小,更直观,如果不加-h,显示的单位是 KB。
- 关键行:
使用 swapon 命令(查看启用的 Swap)
swapon 命令通常用于启用 Swap 分区或文件,但配合 -s 或 --show 选项,它可以简洁地列出当前所有激活的 Swap 设备及其使用情况。
- 在终端输入:
swapon -s
或
swapon --show
- 查看输出:
Filename Type Size Used Priority /dev/sda2 partition 2097148 262144 -2- Filename: 显示 Swap 空间所在的设备或文件路径 (
/dev/sda2)。 - Type: 通常是
partition(分区) 或file(文件)。 - Size: Swap 空间的总大小,单位是 KB。
- Used: 已使用的 Swap 空间大小,单位是 KB。
- Priority: Swap 区域的优先级,数值越高越优先使用,内核在决定使用哪块 Swap 时会参考此值。
- Filename: 显示 Swap 空间所在的设备或文件路径 (
查看 /proc/swaps 文件(内核信息)

Linux 内核将当前系统的 Swap 信息实时暴露在 /proc/swaps 这个虚拟文件中,直接查看这个文件也能获取信息。
- 在终端输入:
cat /proc/swaps
- 查看输出:
Filename Type Size Used Priority /dev/sda2 partition 2097148 262144 -2输出格式与
swapon -s非常相似,同样列出了激活的 Swap 设备、类型、总大小 (KB)、已用大小 (KB) 和优先级。
使用 top 或 htop 命令(动态监控)
top 和 htop 是强大的系统进程实时监控工具,它们也包含了内存和 Swap 的概览信息。
- 在终端输入
top或htop(如果已安装):top
或
htop # 需要先安装: yum install htop 或 dnf install htop
- 查找 Swap 信息:
- 在
top输出的顶部摘要信息中,通常会有一行包含KiB Swap:或MiB Swap:,显示 Swap 的总量、使用量和空闲量。KiB Mem : 1882976 total, 123928 free, 1133656 used, 625392 buff/cache KiB Swap: 2097148 total, 1835004 free, 262144 used. 543812 avail Mem htop的界面更友好,Swap 信息通常清晰地显示在顶部栏(通常标为Swp),直观地以进度条和数字显示使用比例和大小。
- 在
如何解读结果并采取行动?

仅仅查看 Swap 大小还不够,理解其含义和潜在影响是关键:
used> 0 不等于问题: 系统内核可能会将一些长时间未使用的内存页换出到 Swap,即使物理内存还有剩余,这是正常的缓存策略,少量 Swap 使用通常无需担心。- 关注
used的持续增长和比例:used持续增长,并且占total的比例较高(例如持续超过 20-30%),或者used值频繁波动很大,这通常是物理内存不足的强烈信号。- 高比例使用 Swap 会导致系统响应变慢、磁盘 I/O 压力剧增(因为 Swap 在硬盘上)。
- 结合
free/available内存看: 在free -h的输出中,关注Mem行的available列,这个值表示系统估计的、可供应用程序使用的内存量(考虑了缓存和缓冲区可回收部分)。available内存持续很低(比如只剩几百 MB 或更少),Swapused在增长,基本可以确定内存是瓶颈。 si(swap in) 和so(swap out): 使用vmstat 1命令可以动态查看每秒从 Swap 换入内存 (si) 和从内存换出到 Swap (so) 的 KB 数,持续的、较高的si/so值(例如每秒几百 KB 以上),尤其是so,表明系统正在频繁地进行 Swap 交换,性能会严重受损。
查看方法对比
| 方法 | 命令/文件 | 优点 | 缺点 | 最佳适用场景 |
|---|---|---|---|---|
| free | free -h | 最常用,信息全面直观(带单位),包含内存 | 无 | 快速查看内存和Swap概览 |
| swapon | swapon -s 或 --show | 清晰列出所有激活的Swap设备及详情 | 默认单位是KB,不如free -h直观 | 查看Swap具体来源和优先级 |
| /proc/swaps | cat /proc/swaps | 直接反映内核信息,内容同swapon -s | 纯文本,单位KB,需手动解析 | 脚本处理或快速查看设备 |
| top / htop | top 或 htop | 动态实时监控,结合进程查看 | 信息在顶部汇总,不如free专注Swap | 监控系统资源时顺带查看Swap趋势 |
| vmstat | vmstat 1 | 查看Swap交换活动 (si, so) | 输出复杂,需要理解各项含义 | 诊断Swap性能瓶颈(频繁交换) |
个人观点
作为一名长期与服务器打交道的运维人员,我认为将 Swap 使用率视为服务器健康的“晴雨表”非常必要,它不仅仅是一个数字,更是系统资源压力的直观反映,我强烈建议将 Swap 监控纳入日常巡检流程,不要等到网站卡顿、服务报警才去查看,养成习惯,结合 free -h 查看整体情况,用 vmstat 观察交换频率,能让你在潜在问题爆发前就有所察觉,Swap 是救急的“备用轮胎”,而不是常态化的“行驶方式”,持续的高 Swap 使用率几乎总是指向物理内存不足这个核心问题,及时优化应用内存占用或升级内存才是治本之道,清晰的认知和主动的监控,是保障 CentOS 服务器稳定高效运行的基础。
