首页 游戏 软件 资讯 排行榜 专题
首页
系统平台
Linux如何查看哪些进程正在使用交换分区 常用脚本

Linux如何查看哪些进程正在使用交换分区 常用脚本

热心网友
59
转载
2026-04-25

直接看 /proc/$PID/smaps 中的 Swap: 行可获进程真实已换出 swap 量(单位 KB),需对所有 Swap: 行求和;常用管道命令可快速列出占用 swap 前十的用户进程

linux如何查看哪些进程正在使用交换分区 常用脚本

直接看 /proc/$PID/smaps 里的 Swap 行

从 Linux 内核 2.6.16 版本开始,系统在 /proc/$PID/smaps 这个文件里,为每个进程提供了极其详尽的内存映射信息。其中,Swap: 这一行是关键,它明明白白地告诉你,对应的内存页此时此刻是不是真的被换出到了交换分区——注意,这里说的是“已经换出去”的实打实的用量(单位是KB),而不是“有可能被换出”的潜在部分。

这里有个容易踩的坑:一个进程往往有多个内存映射区域,比如堆、栈、各种共享库等等,每个区域都可能独立地拥有自己的 Swap: 值。所以,想得到这个进程真实的 swap 占用总量,你必须把所有这些区域的 Swap: 值加起来才行。

常见的错误做法是只抓取第一行或者漏掉几个区域。正确的姿势是使用命令:grep Swap /proc/$PID/smaps | awk '{sum += $2} END {print sum+0}'。末尾那个 +0 是个小技巧,目的是防止在 awk 没有匹配到任何内容时输出空值或报错。

用一行命令快速列出 top10 占用 swap 的进程

临时排查问题,谁也不想写冗长的脚本。下面这条经典的 shell 管道命令,就是为这种场景准备的,它能快速揪出占用 swap 最多的前十个“大户”:

for i in /proc/[0-9]*; do [ -f "$i/smaps" ] || continue; pid=$(basename $i); swap=$(awk '/^Swap:/ {sum += $2} END {print sum+0}' "$i/smaps" 2>/dev/null); [ "$swap" != "0" ] && echo "$pid $swap $(ps -p "$pid" -o comm= 2>/dev/null | tr -d '\n')"; done | sort -k2 -nr | head -10 | awk '{printf "%-8s %8s KB %s\n", $1, $2, $3}'

这条命令有几个设计巧妙的点,值得说道说道:

  • 使用 /proc/[0-9]* 来匹配进程目录,比先用 lsgrep 更安全直接,能避免误匹配到 /proc/sys 这类非进程目录。
  • [ -f "$i/smaps" ] 这个检查很关键,它能有效过滤掉那些已经退出、但目录还残留的僵尸进程。
  • 通过 ps -p "$pid" -o comm= 只获取简短的进程名,不包含路径,这样最终输出的格式会更整齐,不会因为路径长短不一而显得混乱。
  • 整个流程是:先计算 swap、收集信息,然后通过 sort -k2 -nr 按第二列(swap值)进行数字逆序排序,再用 head -10 取前十。这个“先排序后格式化”的顺序,比反过来要可靠得多。

注意 init 进程(PID 1)和内核线程的干扰

运行上面的命令时,你可能会遇到一些小麻烦。比如,/proc/1/smaps 这个文件虽然存在,但通常权限不允许读取。而那些内核线程,像 kthreaddkhungtaskd 等,它们的 /proc/$PID/smaps 文件倒是能读,但里面的 Swap: 值永远是0——原因很简单,内核线程根本用不到用户态的交换空间。

所以,一个健壮的脚本最好能把它们过滤掉:

  • 显式跳过 PID 1:在循环里加一句判断,[ "$pid" = "1" ] && continue
  • 跳过内核线程:内核线程的命令名通常以方括号 [ ] 包裹。可以用 ps -p "$pid" -o comm= 2>/dev/null | grep -q '^[a-z]' 来判断,如果命令名不是以小写字母开头,就忽略它。
  • 避免误操作:确保只对真正的进程目录执行 grep Swap 操作,否则如果跑到 /proc/sys 这类目录下去执行,不仅会报错,还会污染你的输出结果。

为什么不用 smem 或 top?

你可能会问,既然有 smemtop 这种现成的工具,为什么还要这么麻烦地去解析原始文件?

先说 smem。它确实能显示一个 swap 列,但它的底层数据源其实也是 /proc/$PID/smaps。问题在于,smem 默认会对共享内存进行分摊计算,这会导致它算出来的 swap 值比实际从 smaps 直接求和得到的结果要低,有时甚至会是0。也就是说,它给出的可能是一个“被平均后”的、失真的数字。

再看 top 命令。在 CentOS 6 及以后的版本里,top 输出中那个 SWAP 列(按 f 键然后选择 P 可以调出),其计算方式是 VIRT - RES。这本质上表示的是虚拟内存中“理论上可以被换出”的部分,而**不是**当前实际已经被换出的量。对于那些通过 mmap(MAP_ANONYMOUS) 等方式分配的内存,这个差值常常会远远大于真实的 swap 使用量,极具误导性。

所以说,当你真想精准定位“到底是哪个进程在偷吃 swap”时,绕开 /proc/$PID/smaps 这个原始数据源去走捷径,往往是行不通的。回归原始数据,虽然步骤稍多,但结果最可靠。

最后再提个醒:通过 smaps 查看到的 swap 值,只是系统在某个瞬间的快照。内存页的状态是动态的,可能刚被换出,下一秒又换入了。如果你发现某个进程的 swap 占用在持续增长且不见回落,那就要高度警惕了——这背后很可能藏着内存泄漏或者未被释放的大对象。到了这一步,光看数字就没用了,得请出 pstackgdb 这类工具,深入进程内部去查看堆栈情况,才能找到根本原因。

来源:https://www.php.cn/faq/2356192.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

2026年GEO服务商技术评测五大主流企业服务效果深度解析
业界动态
2026年GEO服务商技术评测五大主流企业服务效果深度解析

在生成式AI重塑信息入口的今天,一个关键问题摆在所有企业决策者面前:当超过60%的用户开始习惯向AI提问而非传统搜索引擎时,你的品牌在AI的“认知空间”里,是清晰可见,还是近乎隐形? 这背后,正是生成式引擎优化(GEO)所争夺的战场。GEO公司,正是帮助企业在这场新流量话语权争夺战中,构建品牌AI可

热心网友
05.25
岚图高管批评汽车设计同质化严重 技术空心化问题凸显
业界动态
岚图高管批评汽车设计同质化严重 技术空心化问题凸显

5月22日,岚图汽车高层针对当前汽车行业普遍存在的外观设计同质化现象发表了犀利见解,观点直指行业痛点。 岚图高管邵明峰一针见血地指出:“问题的根源在于,许多产品仅依赖一张‘似曾相识’的面孔——彼此模仿借鉴,再通过低价策略抢占市场,这本质上是一种追求短期效益的捷径。” 董事长卢放随后补充,其观点更为深

热心网友
05.25
史克威尔艾尼克斯经典IP转型服务型游戏模式
业界动态
史克威尔艾尼克斯经典IP转型服务型游戏模式

前高管指出,史克威尔艾尼克斯需优化经典IP的服务型游戏模式。公司虽具备技术与运营经验,但关键在于让《最终幻想》等IP更贴合新一代玩家的兴趣与数字生活节奏。需在保持IP精髓的基础上,通过创新叙事与高效内部协作,探索与新时代对话的方式,释放其潜力。

热心网友
05.25
彩虹钻石游戏攻略:高效获取钻石的多种挑战任务指南
游戏攻略
彩虹钻石游戏攻略:高效获取钻石的多种挑战任务指南

《彩虹钻石》游戏中,钻石可通过多种途径获取。完成日常任务、参与限时活动及每日签到可获得稳定收益。关注官方社交媒体、探索隐藏关卡和挑战成就任务也能收获钻石。此外,竞技场比赛、公会活动、好友互动以及兑换道具均为有效方法。合理利用这些渠道,即可快速积累钻石,提升游戏体验。

热心网友
05.25
宝珠系统玩法详解与全面攻略指南
游戏攻略
宝珠系统玩法详解与全面攻略指南

宝珠系统是游戏角色养成的策略核心,通过抽取获取并分为天、地、人三类。宝珠可镶嵌于石碑,提供专属或通用属性词条,且同一石碑禁止镶嵌完全相同的词条。多余宝珠可合成提升品质,高品质宝珠还能消耗材料洗练以刷新词条。该系统允许玩家自由搭配,构建独特战斗风格。

热心网友
05.25

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

伴鱼个性化学习如何通过动作定制提升效果
科技数码
伴鱼个性化学习如何通过动作定制提升效果

个性化学习已进入“动作”定制时代,系统通过动态分析学生数据构建个人知识图谱,实时规划学习路径、讲解方式与复习节奏。例如针对错题追溯前置薄弱点并调整讲解方法,实现从结果纠错到过程归因的转变,使大规模因材施教成为可执行、可量化的科学实践。

热心网友
05.25
河北信息通信业发展领先全国主要指标位居前列
科技数码
河北信息通信业发展领先全国主要指标位居前列

2025年,河北信息通信行业交出了一份令人瞩目的高质量发展答卷。核心发展指标持续领跑全国,稳居第一梯队,行业竞争优势与领先地位得到全面巩固,为河北省经济社会数字化转型构筑了坚实可靠的数字基石。 这份优异成绩,首先得益于信息基础设施的跨越式升级。全年行业固定资产投资完成115 2亿元,规模位列全国第九

热心网友
05.25
天宫空间站首次迎来香港航天员太空会师
科技数码
天宫空间站首次迎来香港航天员太空会师

北京时间2026年5月25日凌晨,中国空间站迎来又一里程碑时刻。神舟二十三号载人飞船经过约3 5小时的快速交会对接,于2时45分精准对接于天和核心舱的径向对接口。 对接约2 5小时后,舱门顺利开启。已在轨长期驻留的神舟二十一号乘组航天员,热情迎接了新战友入驻。此次“天宫会师”具有双重重要意义:它不仅

热心网友
05.25
三国计手游新手攻略:核心玩法详解与快速入门指南
游戏资讯
三国计手游新手攻略:核心玩法详解与快速入门指南

竖屏SLG手游《三国计》近期开启限时测试。其竖屏设计降低了操作门槛,便于单手游玩,同时保持了紧凑的界面布局与策略深度。玩家扮演乱世诸侯,目标是从生存壮大到问鼎中原。新手期建议紧跟主线任务,以解锁武将、兵种、科技等核心系统,并获取关键资源平稳度过开荒阶段。

热心网友
05.25
微软支付2.5亿美元和解动视暴雪股东诉讼 每股赔偿30美分
游戏资讯
微软支付2.5亿美元和解动视暴雪股东诉讼 每股赔偿30美分

一场历时四年、牵动全球游戏与科技界目光的动视暴雪股东集体诉讼案,迎来关键性进展。微软同意支付高达2 5亿美元的和解金,与提起诉讼的股东达成和解,为这场旷日持久的法律纠纷画上了阶段性句号。 根据2026年5月下旬于美国特拉华州衡平法院披露的和解协议文件,这笔巨额资金将用于赔偿在特定时间段内持有动视暴雪

热心网友
05.25