麒麟系统内存不足时需扩容Swap:先用free -h确认状态并sudo swapoff停用旧文件,再用dd追加空间或重建文件,chmod设权限、mkswap格式化、swapon启用,最后free -h和swapon --show验证。

麒麟系统运行内存密集型任务时出现卡顿、程序崩溃或提示“内存不足”,说明物理内存已满,必须通过命令行修改Swap大小来补充缓冲空间,否则系统将持续处于高负载抖动状态。
确认当前Swap状态并停用旧文件
以root身份打开终端,执行free -h查看Swap行——若Total为0或远低于物理内存,说明需扩容;若已有Swap但容量不足,则先停用:【sudo swapoff /usr/swap/swapfile】。这一步必须完成,否则后续mkswap会报错“Device or resource busy”。
停用后再次执行free -h,确认Swap行total变为0且used为0。
扩展现有Swap文件(推荐无LVM环境)
该方法不删除原文件、不改动分区结构,适合生产环境快速扩容,操作安全可逆。
第一步:使用dd命令在原文件末尾追加空间,例如从8GB扩至16GB:sudo dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=8192 conv=notrunc。注意conv=notrunc参数不可省略,否则会清空原文件内容。
第二步:重设权限确保安全:sudo chmod 0600 /usr/swap/swapfile。权限不对会导致swapon失败,且存在内存数据泄露风险。
第三步:重新格式化为Swap设备:sudo mkswap /usr/swap/swapfile。未执行此步直接swapon会报错“invalid argument”。
第四步:立即启用:sudo swapon /usr/swap/swapfile。启用后仅本次会话生效,不会自动写入开机配置。
替换为更大Swap文件(路径/性能/一致性优先)
当原Swap文件路径混乱、存在损坏迹象,或需统一使用dd保证跨文件系统兼容性时,建议彻底替换。
方法一:删除重建
执行sudo swapoff /usr/swap/swapfile && sudo rm -f /usr/swap/swapfile停用并清除旧文件。
创建新目录(如不存在):sudo mkdir -p /usr/swap。
生成24GB Swap文件:sudo dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=24576。注意检查df -h /usr确保磁盘剩余空间≥24GB,否则dd会卡住或报“No space left on device”。
设置权限并启用:sudo chmod 0600 /usr/swap/swapfile && sudo mkswap /usr/swap/swapfile && sudo swapon /usr/swap/swapfile。
验证扩容结果
执行free -h,观察Swap行的total值是否更新为设定大小(如16.0G或24.0G),且state列为active。
进一步确认设备路径与类型:swapon --show -h,检查output中SIZE列是否匹配、TYPE是否为file、PATH是否指向/usr/swap/swapfile。











