麒麟os内存不足时需手动配置swap:先用free -h确认状态,创建/usr/swap目录,再用dd或fallocate生成swap文件,严格设置chmod 0600权限,mkswap格式化后swapon启用,并写入/etc/fstab实现开机自动挂载。

麒麟OS运行内存密集型任务时出现卡顿、程序崩溃或提示“内存不足”,说明物理内存已满,必须手动设置虚拟内存(Swap)来补充缓冲空间,否则系统将持续处于高负载抖动状态,部分服务可能被OOM Killer强制终止。
确认当前状态并创建专用目录
以root身份打开终端,执行free -h查看Swap行的Total值——若为0或远低于物理内存(如8GB内存配2GB Swap),说明亟需配置。这一步不能跳过,否则可能重复操作或误判容量需求。
立即创建官方推荐路径:mkdir -p /usr/swap。【/usr/swap是Kylin V10/V11官方推荐路径,其他路径(如/tmp/swap)在fstab中易因挂载时机问题导致开机失败】
创建并启用Swap文件
方法一:用dd命令(兼容性最强,适用于所有文件系统)
第一步:生成16GB Swap文件:dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=16384。注意bs=1M比bs=4K更稳定,避免因块大小不匹配导致写入中断甚至磁盘I/O错误。
第二步:设置权限:chmod 0600 /usr/swap/swapfile。这一步不可跳过,否则mkswap会报“Permission denied”。
第三步:格式化并启用:mkswap /usr/swap/swapfile && swapon /usr/swap/swapfile。
第四步:验证生效:swapon --show,确认输出中type为file、size为16.0G、state为active。
方法二:用fallocate(仅ext4/xfs,速度快数倍)
先检查文件系统类型:df -T /usr | tail -1 | awk '{print $2}',输出必须是ext4或xfs才能继续。
创建同容量文件:fallocate -l 16G /usr/swap/swapfile2。
设置权限并启用:chmod 0600 /usr/swap/swapfile2 && mkswap /usr/swap/swapfile2 && swapon /usr/swap/swapfile2。
配置开机自动挂载
编辑fstab文件:vim /etc/fstab。
在文件末尾新增一行:/usr/swap/swapfile swap swap defaults 0 0。注意空格不可替换为制表符,字段顺序不能错,第5、6位数字必须是0 0;路径必须与你启用的文件完全一致(比如用了swapfile2,这里就得写swapfile2)。
保存退出后,执行mount -a测试语法——无任何输出即表示成功;若有“wrong fs type”报错,说明路径写错或文件未mkswap。
重启系统,再次执行free -h,确认Swap行的total值与设定一致,且state为active。
扩容现有Swap大小
① 停用当前Swap:swapoff /usr/swap/swapfile。
② 扩展至24GB:fallocate -l 24G /usr/swap/swapfile。若原用dd创建且分区不支持fallocate,改用dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=24576 conv=notrunc(conv=notrunc确保不覆盖元数据)。
③ 重设权限:chmod 0600 /usr/swap/swapfile。
④ 重新格式化并启用:mkswap /usr/swap/swapfile && swapon /usr/swap/swapfile。
⑤ 验证结果:free -h,确认Swap total更新为24.0G且state为active。











