Linux top命令怎么看swap?swap占用高怎么解决

在 Linux 系统中,top 命令是监控系统资源使用情况最常用的工具之一,而 Swap(交换空间) 则是虚拟内存管理的重要组成部分,理解 top 中 Swap 相关的指标,对于排查内存瓶颈、性能问题至关重要。

以下是关于 top 命令中 Swap 部分的详细解读:

每天一个Linux命令-mkdir
加载中
每天一个Linux命令-mkdir

如何在 top 中查看 Swap 信息

默认情况下,top 命令会显示内存(Mem)和交换空间(Swap)的使用情况。

直接运行 top

top

在输出头部,你会看到类似这样的行:

MiB Mem :  16384.0 total,   2048.0 free,   8192.0 used,   6144.0 buff/cache
MiB Swap:   8192.0 total,   8192.0 free,      0.0 used.   7680.0 avail Mem

按 f 键自定义显示字段

如果某些 Swap 字段未显示,可以按 f 进入字段选择界面,确保以下字段被选中(用 标记):

  • SWAP 或 SWAP TOTAL
  • SWAP FREE
  • SWAP USED

Swap 关键字段详解

在 top 的输出中,Swap 部分通常包含以下四个关键指标:

Linux top命令怎么看swap?swap占用高怎么解决

字段 含义 说明
total 总交换空间大小 系统配置的 Swap 分区或 Swap 文件总容量。
free 空闲交换空间 尚未使用的 Swap 空间。
used 已使用的交换空间 当前正在被使用的 Swap 空间大小。这是最关键的性能指标。
avail Mem 可用物理内存 可供新应用程序使用的物理内存(包含可回收的缓存)。

⚠️ 注意:top 中显示的 avail Mem 是物理内存的可用量,不是 Swap 的。


如何解读 Swap 使用情况?

✅ 正常情况

  • used 为 0 或接近 0:系统物理内存充足,无需使用 Swap。
  • used 少量存在:系统偶尔将不活跃的数据页换出到 Swap,属于正常行为,有助于释放物理内存供缓存使用。

⚠️ 需要关注

  • used 持续增长:可能意味着物理内存不足,或者应用程序存在内存泄漏。
  • used 较高但系统响应正常:可能是历史遗留数据,尚未被回收。

❌ 性能问题(Swap Thrashing / 交换颠簸)

  • used 很高 + 系统响应缓慢 + CPU 等待 I/O 高:
    • 系统频繁地在物理内存和 Swap 之间交换数据。
    • 磁盘 I/O 成为瓶颈,导致系统卡顿。
    • 此时应检查是否有进程占用过多内存,或考虑增加物理内存。

Linux top命令怎么看swap?swap占用高怎么解决

常用相关命令与技巧

🔍 查看哪些进程在使用 Swap

top 本身不直接显示每个进程的 Swap 使用量,但你可以:

  1. 在 top 中按 P(按内存排序),然后查看 %MEM 列。
  2. 使用 ps 命令精确查询:
    # 按 Swap 使用量排序,显示前 10 个进程
    ps -eo pid,comm,swap --sort=-swap | head -n 11
  3. 使用 smem 工具(更直观):
    sudo apt install smem   # Debian/Ubuntu
    sudo yum install smem   # CentOS/RHEL
    smem -t -k -s swap      # 按 Swap 排序显示

📊 实时监控 Swap 变化

# 使用 watch 命令每秒刷新 top 的 Swap 信息
watch -n 1 'top -b -n 1 | grep -i swap'

🛠 调整 Swap 使用策略(swappiness)

Linux 内核有一个参数 vm.swappiness,控制系统倾向于使用 Swap 的程度(0~100):

  • 0:尽可能少用 Swap,只在物理内存极度不足时才使用。
  • 60:默认值,平衡使用。
  • 100:积极使用 Swap,类似 Windows 的行为。

查看当前值:

cat /proc/sys/vm/swappiness

临时修改(立即生效):

sudo sysctl vm.swappiness=10

永久修改(写入配置文件):

Linux top命令怎么看swap?swap占用高怎么解决

echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf sudo sysctl -p

💡 建议:对于数据库服务器(如 MySQL、PostgreSQL),通常建议将 swappiness 设置为较低值(如 10 或 0),以避免数据库页面被换出导致性能下降。


常见问题排查步骤

如果怀疑 Swap 导致性能问题,请按以下步骤排查:

  1. 确认 Swap 使用量:
    free -h
  2. 查看是否有进程大量占用物理内存:
    top -o %MEM
  3. 检查磁盘 I/O 是否瓶颈:
    iostat -x 1

    关注 %util 是否接近 100%,以及 await 是否很高。

  4. 检查内核日志是否有 OOM Killer 记录:
    dmesg | grep -i "out of memory"
    journalctl -k | grep -i "oom"

  • Swap 不是内存的替代品,而是物理内存不足时的“缓冲垫”。
  • top 中 Swap used 为 0 是理想状态,少量使用是正常的。
  • 高 Swap 使用 + 高 I/O 等待 = 性能瓶颈,需优化内存或增加物理内存。
  • 使用 ps 或 smem 可以更精确地定位占用 Swap 的进程。

如有具体 top 输出截图或系统状态描述,我可以提供更针对性的分析。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/483112.html

赞 (0)
SSL证书中间证书链怎么补全?如何配置中间证书
上一篇 2026年7月11日 20:12
GEO优化CPA模式可以吗2026最新?百度GEO优化怎么做
下一篇 2026年7月11日 20:15

相关推荐

  • 淮南联想服务器HBA卡多少钱,哪里买便宜?

    淮南本地企业采购联想服务器HBA卡,单块主流16Gb Gen3光纤通道卡市场行情在800元至1600元之间,具体价格取决于型号、质保和供货渠道,全新原装与拆机二手差价可达一倍以上,HBA卡是服务器连接存储设备的关键组件,选错型号、买错接口、混用速率都会直接影响业务稳定,这篇文章从价格构成、型号识别、渠道选择到避……

    2026年9月18日
    100
  • linux光盘目录怎么查看?linux挂载光盘目录命令

    Linux光盘目录并非物理实体,而是ISO镜像文件中遵循FHS标准的虚拟文件系统结构,其核心在于通过根目录/下的标准化层级(如/bin、/etc、/home)实现系统资源的逻辑隔离与管理,当我们谈论“Linux光盘目录”时,很多人脑海中浮现的是一张刻录好的光盘,或者是一个挂载在/media/cdrom下的文件夹……

    2026年7月9日
    7800
  • 我的世界马桶玩的外国服务器IP是多少?,怎么进

    玩《我的世界》马桶模组找外国服务器,没有固定IP,需要通过服务器列表网站或模组社区实时获取,但核心是确保网络稳定,选择靠谱的IDC服务商,什么是“马桶”模组?为什么需要外国服务器?“马桶”模组是《我的世界》玩家社区对某类特定玩法或整合包的戏称,通常指代那些包含重口味、恶搞或特殊机制的游戏内容,这类模组往往在国内……

    2026年8月24日
    600
  • 联想服务器初始密码一般是多少,默认账号密码怎么查?

    开篇直接给答案联想服务器初始密码通常为 admin/Password1 或 admin/Lenovo123,具体取决于机型与出厂批次,但多数 ThinkSystem 系列默认采用 admin/Password1 组合, 若你入手的是二手设备或未重置过的旧款,密码可能为 admin/lenovo 或 admin……

    2026年8月17日
    1100
  • 云服务器IP怎么看是多少位数,查询步骤是什么?

    云服务器IP的位数由协议版本决定:IPv4地址是32位二进制数,换算成十进制就是常见的4组数字;IPv6地址则是128位二进制数,对应8组十六进制字符,目前绝大多数云服务器默认分配的是IPv4地址,也就是你看到的那种“192.168.1.1”格式,如果你在服务器信息里看到类似“240e:1234:5678::1……

    2026年8月28日
    900
  • hp200g1服务器ip是多少

    HP ProLiant MicroServer Gen1(即常说的HP 200G1)出厂时没有固定IP,默认情况下它通过DHCP自动获取局域网地址,你需要登录iLO管理口或检查路由器后台才能找到它的实际IP,这台机器虽然定位入门级,但凭借低功耗和四盘位设计,至今仍是不少玩家手里的“宝藏机”,如果你刚入手或重置了……

    2026年8月28日
    800
  • 服务器1M带宽能支撑多少人同时访问,够用吗?

    1M带宽的服务器在页面体积200-500KB、启用缓存的前提下,通常能支撑每分钟20-50人同时在线访问,换算成每秒并发请求约为1-3个,这个结论不是拍脑袋得出的,而是基于带宽物理上限、页面资源大小、用户浏览行为三个因素叠加后的行业通用估算,下面拆开讲清楚其中的计算逻辑和实际场景表现,1M带宽的真实吞吐能力带宽……

    2026年8月22日
    100
  • linux pads是什么软件,怎么安装?

    对于在 Linux 系统上运行 PADS 软件,目前最成熟的方案是通过 Wine 兼容层或虚拟机间接实现,官方并未提供原生 Linux 版本,国内用户需根据实际项目复杂度选择对应方式,Linux pads好用吗?从实际工作场景分析优劣在决定是否要在 Linux 上使用 PADS 前,你先要搞清楚自身场景,业内专……

    2026年7月15日
    1800
  • 圣契服务器到底多少钱一个,哪个平台购买更便宜?

    一台能稳定承载圣契服务器的机器,月付成本普遍在100元到500元区间,具体取决于配置、线路和防御;如果你只开个几十人的小服,100多元的入门机完全够用,先搞清楚“圣契服务器”到底吃不吃配置很多第一次开圣契服的朋友上来就问价格,其实价格只是结果,配置才是决定因素,圣契这类游戏服务端有个特点:CPU主频比核心数更重……

    2026年9月8日
    100
  • 云服务器一年租金要多少,哪个平台性价比高呢?

    云服务器一年租金根据配置不同,入门级通常在300-1000元区间,企业级主流配置在2000-10000元,高性能计算型则需数万甚至更高, 这个价格范围覆盖了从个人博客到中型企业核心业务的不同需求层次,实际花费取决于CPU核心数、内存容量、带宽大小、存储类型及购买时长,其中带宽和内存是影响价格最显著的两个变量,选……

    2026年9月9日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注