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 进入字段选择界面,确保以下字段被选中(用 标记):

  • SWAPSWAP 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 等待 = 性能瓶颈,需优化内存或增加物理内存。
  • 使用 pssmem 可以更精确地定位占用 Swap 的进程。

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

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

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

相关推荐

  • 千兆宽带跑x86服务器月赚多少钱,怎么赚钱?

    千兆宽带跑x86服务器,月收益并不固定,大部分玩家的月净收益在数百元到两千元区间,但能否稳定跑满收益取决于网络环境、硬件配置和服务商资质,选错方向可能直接亏电费,家庭宽带跑x86服务器,上限在哪用千兆宽带跑x86服务器,本质是拿闲置上行带宽换收益,你要先搞清楚自身网络环境的真实瓶颈,上行带宽是硬指标千兆宽带通常……

    相关资讯 2026年8月5日
    400
  • linux ifb是什么网络设备,怎么配置?

    ifb是Linux内核专为流量控制设计的虚拟网络设备,它通过重定向数据包让原本只能进行出站整形的tc能够对入站流量施加精确管控,是流量整形、带宽限制和流量监控的核心组件,Linux IFB有什么用?核心价值与工作原理如果你用过Linux上的流量控制(tc),一定遇到过这种尴尬:你拼命研究HTB、SFQ,熟练地在……

    2026年7月15日
    1500
  • 1核1G服务器能同时支持多少人访问,带宽怎么选?

    服务器1核1G配置在多数中小网站场景下,每日可承受数百至上千的独立访客,具体数值取决于网站类型、代码优化及并发请求分布,影响1核1G服务器承载力的核心因素一台1核1G的云服务器能撑住多少访问量,不是拍脑袋就能定的,行业里常说的“并发数”和“日均PV”是两个不同的标尺,并发数指同一时刻请求服务器资源的用户数量,日……

    2026年8月5日
    1200
  • 如何知道服务器的ip地址是多少位

    要判断服务器IP地址的位数,核心是区分它属于IPv4(32位)还是IPv6(128位),通过观察地址格式、运行命令行工具或访问在线检测平台都能快速确认,从IP地址外观直接判断位数IPv4的点分十进制结构IPv4地址由32位二进制组成,每8位为一组转换为十进制,中间用点号分隔,例如168.1.1,每个十进制数的范……

    2026年8月25日
    100
  • 服务器限制IP访问一般限制多少用户,如何设置?

    服务器限制IP访问通常并不直接对应一个固定的用户数量,因为一个IP可能代表多个用户,实际限制的是IP地址的并发连接数或请求频率,常见设置为每个IP 10-50个并发连接,具体取决于服务器的业务场景与性能配置,理解IP限制与用户数量的关系当你开始配置服务器,发现“IP限制”这个选项时,可能会想:“我到底限制了多少……

    2026年8月4日
    500
  • 服务器宽带20m可以承受多少人

    20M带宽的服务器,在典型网页应用场景下,大约能同时支撑200-300人进行常规浏览,但实际数字受业务类型、并发模型和优化程度影响,需要具体测算,影响20M带宽承载人数的关键因素带宽的单位与真实速度20M带宽指的是20Mbps,即每秒传输20兆比特,换算成字节约为2.5MB/s,这个速度是所有用户共享的,每个用……

    2026年8月24日
    100
  • iometer linux怎么下载?iometer linux安装包下载

    iometer在Linux下的最佳获取方式是通过源码编译安装,这是确保系统稳定性与性能测试准确性的首选方案,而非直接下载预编译的二进制包,在服务器运维和存储性能调优的领域里,iometer依然是许多资深工程师手中的利器,尽管近年来出现了许多图形化界面更友好的现代测试工具,但iometer凭借其轻量级、低资源占用……

    2026年7月7日
    19300
  • linux shell socket怎么用?linux socket编程实例详解

    在Linux Shell中通过Socket进行网络通信,核心在于利用nc命令进行快速测试,或通过编写Shell脚本结合netcat与curl实现自动化数据采集,这是运维人员排查网络连通性及调试API接口最基础且高效的手段,为什么Shell是网络调试的首选工具在服务器运维和开发场景中,图形化界面往往受限于远程连接……

    2026年7月4日
    2300
  • 十万并发量的服务器要多少钱,价格是多少?

    对于10万并发量的服务器需求,单台肯定扛不住,月成本通常在2万到10万元之间,具体取决于架构设计、业务类型和是否采用高防等增值服务,选择持牌自营机房如简米科技或酷番云,能确保长期稳定性,避免踩坑,10万并发到底意味着什么很多人一上来就问“10万并发的服务器多少钱”,但如果不搞清楚这个数字背后的真实负载,预算很容……

    2026年8月22日
    500
  • NTP标准时间服务器多少钱,怎么选不踩坑?

    NTP标准时间服务器的价格从数千元到数万元不等,基础型设备通常在3000元左右,支持GPS/北斗的高精度设备则需10000-50000元,具体取决于精度等级、部署方式和供应商资质,核心因素:什么决定了NTP服务器的价格?NTP标准时间服务器的价格并非单一数字,而是由技术指标、硬件配置和服务商资质共同决定,了解这……

    2026年8月21日
    400

发表回复

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