HCRM博客

CentOS Swap信息查看指南

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

本文将详细介绍几种在 CentOS 系统上查看 Swap 信息的实用方法,帮助你快速掌握系统状态。

CentOS Swap信息查看指南-图1

使用 free 命令(最常用)

free 命令是 Linux 系统上查看内存(包括 Swap)使用情况最直接、最常用的工具。

  1. 打开终端: 通过 SSH 登录你的 CentOS 服务器。
  2. 输入命令:
    free -h
  3. 查看输出:
                   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 设备及其使用情况。

  1. 在终端输入:
    swapon -s

    swapon --show
  2. 查看输出:
    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 时会参考此值。

查看 /proc/swaps 文件(内核信息)

CentOS Swap信息查看指南-图2

Linux 内核将当前系统的 Swap 信息实时暴露在 /proc/swaps 这个虚拟文件中,直接查看这个文件也能获取信息。

  1. 在终端输入:
    cat /proc/swaps
  2. 查看输出:
    Filename                                Type            Size    Used    Priority
    /dev/sda2                               partition       2097148 262144  -2

    输出格式与 swapon -s 非常相似,同样列出了激活的 Swap 设备、类型、总大小 (KB)、已用大小 (KB) 和优先级。

使用 tophtop 命令(动态监控)

tophtop 是强大的系统进程实时监控工具,它们也包含了内存和 Swap 的概览信息。

  1. 在终端输入 tophtop (如果已安装):
    top

    htop # 需要先安装: yum install htop 或 dnf install htop
  2. 查找 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),直观地以进度条和数字显示使用比例和大小。

如何解读结果并采取行动?

CentOS Swap信息查看指南-图3

仅仅查看 Swap 大小还不够,理解其含义和潜在影响是关键:

  1. used > 0 不等于问题: 系统内核可能会将一些长时间未使用的内存页换出到 Swap,即使物理内存还有剩余,这是正常的缓存策略,少量 Swap 使用通常无需担心。
  2. 关注 used 的持续增长和比例:
    • used 持续增长,并且占 total 的比例较高(例如持续超过 20-30%),或者 used 值频繁波动很大,这通常是物理内存不足的强烈信号
    • 高比例使用 Swap 会导致系统响应变慢、磁盘 I/O 压力剧增(因为 Swap 在硬盘上)。
  3. 结合 free/available 内存看:free -h 的输出中,关注 Mem 行的 available 列,这个值表示系统估计的、可供应用程序使用的内存量(考虑了缓存和缓冲区可回收部分)。available 内存持续很低(比如只剩几百 MB 或更少),Swap used 在增长,基本可以确定内存是瓶颈。
  4. si (swap in) 和 so (swap out): 使用 vmstat 1 命令可以动态查看每秒从 Swap 换入内存 (si) 和从内存换出到 Swap (so) 的 KB 数,持续的、较高的 si/so 值(例如每秒几百 KB 以上),尤其是 so,表明系统正在频繁地进行 Swap 交换,性能会严重受损。

查看方法对比

方法命令/文件优点缺点最佳适用场景
freefree -h最常用,信息全面直观(带单位),包含内存快速查看内存和Swap概览
swaponswapon -s--show清晰列出所有激活的Swap设备及详情默认单位是KB,不如free -h直观查看Swap具体来源和优先级
/proc/swapscat /proc/swaps直接反映内核信息,内容同swapon -s纯文本,单位KB,需手动解析脚本处理或快速查看设备
top / htoptophtop动态实时监控,结合进程查看信息在顶部汇总,不如free专注Swap监控系统资源时顺带查看Swap趋势
vmstatvmstat 1查看Swap交换活动 (si, so)输出复杂,需要理解各项含义诊断Swap性能瓶颈(频繁交换)

个人观点

作为一名长期与服务器打交道的运维人员,我认为将 Swap 使用率视为服务器健康的“晴雨表”非常必要,它不仅仅是一个数字,更是系统资源压力的直观反映,我强烈建议将 Swap 监控纳入日常巡检流程,不要等到网站卡顿、服务报警才去查看,养成习惯,结合 free -h 查看整体情况,用 vmstat 观察交换频率,能让你在潜在问题爆发前就有所察觉,Swap 是救急的“备用轮胎”,而不是常态化的“行驶方式”,持续的高 Swap 使用率几乎总是指向物理内存不足这个核心问题,及时优化应用内存占用或升级内存才是治本之道,清晰的认知和主动的监控,是保障 CentOS 服务器稳定高效运行的基础。


本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/36277.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~