需确认Swap是否被大量占用,应依次执行free -h查总量与使用率、swapon --show定位活跃设备、cat /proc/swaps验证配置、top按SWAP列排序定位高消耗进程。

您在麒麟系统中遇到程序响应变慢、内存告警或需要做性能调优,急需确认Swap分区是否被大量占用。此时不能只看物理内存,必须直接获取交换空间的实时使用量、已用百分比、活跃设备路径及换页行为,否则可能误判为CPU瓶颈或磁盘I/O问题。
用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,但同样参与页面置换——别把它当成异常项忽略。
用top动态观察Swap使用并定位高消耗进程
当free显示Swap使用率很高,但物理内存available还很充裕时,问题往往出在个别进程偷偷占用了大量虚拟内存。top能帮你揪出它们。
第一步:启动top:top
第二步:按f键进入字段管理界面 → 用方向键选中“SWAP” → 按空格启用 → 按q退出设置
第三步:按Shift + O(大写O)打开排序菜单 → 输入SWAP → 回车,列表将按Swap使用量降序排列
第四步:观察“SWAP”列数值最大的前3个进程,记下PID,再按l键(小写L)查看其完整命令路径,确认是否为预期服务

















