麒麟系统内存不足时需手动设置Swap:先用fallocate或dd创建swap文件,再chmod 0600、mkswap、swapon启用,并必须写入/etc/fstab才能开机自动挂载;扩容时可swapoff后fallocate扩展再重新格式化启用。

麒麟系统运行内存密集型任务时出现卡顿、程序崩溃或提示“内存不足”,说明物理内存已满,必须手动设置虚拟内存(Swap)来补充缓冲空间,否则系统将持续处于高负载抖动状态。
创建并启用Swap文件
这是最通用、零风险的方法,适用于所有麒麟KYLINOS版本(含V10 SP1/SP2、V11),无需改动分区结构,也不依赖LVM或图形界面。
第一步:以root身份打开终端,执行 free -h 查看当前Swap状态——若Total为0或远低于物理内存,说明尚未启用或容量严重不足。
第二步:创建专用目录,避免混用系统路径:mkdir -p /usr/swap。这一步不能跳过,否则后续命令会因路径不存在而失败。
第三步:生成Swap文件。推荐使用 fallocate(速度快、不写零):fallocate -l 16G /usr/swap/swapfile。若目标分区为ext2/ext3或不确定是否支持fallocate,改用dd:dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=16384。
第四步:【必须执行】chmod 0600 /usr/swap/swapfile。权限不对会导致swapon失败,且存在安全风险——普通用户读取该文件可能泄露内存残留数据。
第五步:格式化并立即启用:mkswap /usr/swap/swapfile && swapon /usr/swap/swapfile。启用后不会自动写入开机配置,仅本次会话生效。
配置开机自动挂载
重启后Swap会消失,必须将路径写入fstab才能持久化。这一步漏掉,前面所有操作在下次启动后全部失效。
用vim编辑fstab:vim /etc/fstab。
在文件末尾新增一行:/usr/swap/swapfile swap swap defaults 0 0。注意空格不可替换为制表符,字段顺序不能错,第5、6位数字必须是0 0。
保存退出后,运行 mount -a 测试语法——无任何输出即表示成功;若有报错(如“wrong fs type”),说明路径写错或文件未mkswap。
重启系统,再次执行 free -h,确认Swap行的total值与你设定的大小一致,且state为active。
调整Swap大小(扩容)
当业务增长导致原Swap不够用,可在线扩容,无需删除重建。
方法一:fallocate直接扩展(推荐)
① 停用当前Swap:swapoff /usr/swap/swapfile
② 扩展至24GB:fallocate -l 24G /usr/swap/swapfile
③ 重设权限:chmod 0600 /usr/swap/swapfile
④ 重新格式化并启用:mkswap /usr/swap/swapfile && swapon /usr/swap/swapfile
方法二:dd追加(兼容性更强)
停用后执行:dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=24576 conv=notrunc。注意必须加 conv=notrunc,否则会清空原有内容。
扩容完成后,free -h 中Swap total应实时更新,无需重启即可生效。

















