麒麟OS内存不足时需手动启用Swap分区,方法包括fallocate/dd创建文件或LVM逻辑卷方式,启用后须配置fstab实现开机自动挂载,关闭时需swapoff验证并清理残留。

麒麟OS运行内存密集型任务时出现卡顿、程序崩溃或提示“内存不足”,说明物理内存已满,必须在终端中手动开启Swap分区才能补充缓冲空间;关闭Swap则用于释放磁盘占用、排查内存泄漏或配合系统调优,操作需严格按路径与权限执行。
确认当前Swap状态
以root身份打开终端,执行free -h查看输出中Swap行的Total值——若为0,表示未启用;若数值远低于物理内存(如Mem total为32G而Swap仅2G),说明容量严重不足。同时执行swapon --show,确认当前激活的设备路径和type(file或partition),这是后续启停操作的唯一依据。
开启Swap分区(文件方式)
方法一:用fallocate快速创建(仅适用于ext4/xfs文件系统)
① 先检查分区类型:df -T /usr | awk 'NR==2 {print $2}',输出必须是ext4或xfs;
② 创建16GB Swap文件:fallocate -l 16G /usr/swap/swapfile;
③ 【必须执行】chmod 0600 /usr/swap/swapfile——权限错误会导致swapon失败,且普通用户可读该文件将泄露内存残留数据;
④ 格式化并启用:mkswap /usr/swap/swapfile && swapon /usr/swap/swapfile;
⑤ 验证:free -h中Swap total应显示16.0G且state为active。
方法二:用dd兼容创建(适用于所有文件系统)
执行:dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=16384。注意:bs×count必须等于目标大小(16384×1MB=16GB),若磁盘剩余空间不足,dd会卡住或报“No space left on device”;其余步骤同方法一③④⑤。
开启Swap分区(LVM逻辑卷方式)
适用于已部署LVM环境的服务器,性能更优。
第一步:确认Swap逻辑卷路径,执行swapon --show=NAME,TYPE | grep swap,输出类似/dev/mapper/klas-swap;
第二步:格式化该设备:mkswap /dev/mapper/klas-swap;
第三步:启用:swapon /dev/mapper/klas-swap;
第四步:验证是否生效:swapon --show | grep klas-swap,确保size正确、state为active。
配置开机自动挂载(持久化)
不执行此步,重启后Swap将全部失效。
① 用vim编辑fstab:vim /etc/fstab;
② 在末尾新增一行:/usr/swap/swapfile swap swap defaults 0 0(若为LVM路径,则写/dev/mapper/klas-swap swap swap defaults 0 0);
③ 注意:字段间必须用空格分隔,不可用Tab;第5、6位数字必须是0 0;
④ 执行mount -a测试语法——无任何输出即成功;若有报错(如“wrong fs type”),说明路径写错或未执行mkswap。
关闭Swap分区
关闭前务必确认系统负载可控,避免触发OOM Killer。
第一步:停用指定Swap设备,例如停用文件:swapoff /usr/swap/swapfile;若为LVM设备,则用swapoff /dev/mapper/klas-swap;
第二步:验证是否已关闭,执行swapon --show,输出为空或不再包含该设备;
第三步:如需彻底移除,删除文件:rm -f /usr/swap/swapfile,或删除LVM逻辑卷:lvremove /dev/mapper/klas-swap(执行前需确认无其他依赖);
第四步:从/etc/fstab中删除或注释对应行,再执行mount -a校验。











