必须用free -h看Swap总量与使用率,swapon --show查激活设备类型/路径/优先级,cat /proc/swaps验证fstab配置并识别zram,top按SWAP列排序定位高内存占用进程。

您在麒麟操作系统中遇到系统响应变慢、内存告警或需定位内存泄漏源头,必须精确知道哪些交换分区正在被使用、各自占用多少空间、类型是否为文件或分区,以及它们的优先级配置是否合理,否则无法判断是单一Swap过载还是多设备负载不均。
用free -h快速获取Swap总量与已用值
这一步操作起来很简单,直接在终端输入命令就能看到全局概览,适合第一次排查时快速定性。
打开终端,执行:free -h
找到输出中“Swap”那一行,重点看【total】(总大小)、【used】(已用)和【free】(空闲)三列数值,单位是G或M,人眼可读。若used值接近total,说明Swap已快耗尽;若used为0,代表Swap根本没启用——此时再查进程内存也无意义。
用swapon --show列出所有激活的Swap设备及其已用详情
当系统配置了多个Swap分区或混合使用分区+文件时,free只能显示合计值,无法定位具体哪个设备在扛压。swapon --show能精确告诉你当前生效的是哪几个路径、类型、大小和优先级。
执行命令:swapon --show
检查输出中的TYPE列:partition表示是磁盘分区,file表示是Swap文件;PATH列显示实际路径,比如/dev/sda2或/swapfile。
若命令执行后没有任何输出,【说明当前没有启用任何Swap空间】,后续所有Swap分析都失去前提。
想把SIZE和USED转成易读格式(如2.0G而非2147479552字节),追加-h参数:swapon --show -h
解析/proc/swaps获取原始交换分区详情
/proc/swaps是内核直接维护的底层数据源,字段顺序固定,适合交叉验证fstab配置是否生效,也适用于脚本批量处理。
第一步:运行命令查看原始内容:cat /proc/swaps
第二步:每行含五个字段,依次为:filename、type、size(KB)、used(KB)、priority。注意size和used单位是KB,不是MB或GB。
第三步:若某行filename为“/dev/zram0”,说明启用了压缩内存(zram),它不算传统磁盘Swap,但同样参与页面置换——别把它当成异常项忽略。
第四步:若需将used换算为百分比,可手动计算:例如某行size为8388604(KB)、used为1258291(KB),则使用率≈15%。
用top动态观察并排序高Swap占用进程
当free显示Swap使用率很高,但物理内存available还很充裕时,问题往往出在个别进程偷偷占用了大量虚拟内存。top能帮你揪出它们。
第一步:启动top:top
第二步:按f键进入字段管理界面 → 用方向键选中“SWAP” → 按空格启用 → 按q退出设置
第三步:按Shift + O(大写O)打开排序菜单 → 输入SWAP → 回车,列表将按Swap使用量降序排列
第四步:观察“SWAP”列数值最大的前3个进程,其COMMAND列即为可疑程序名,PID列可用于后续kill或调试。

















