麒麟系统内存不足时需调整SWAP大小,方法包括:一、扩展现有Swap文件;二、替换重建更大Swap文件;三、LVM逻辑卷动态扩容;四、更新fstab确保开机生效。

如果您在麒麟操作系统中运行内存密集型应用时出现卡顿、响应迟缓或系统提示“内存不足”,则可能是当前SWAP分区容量已无法满足运行需求,需调整其大小以增强虚拟内存缓冲能力。以下是修改SWAP分区大小的多种可行方法:
一、扩展现有Swap文件大小
该方法适用于已通过dd或fallocate创建Swap文件但容量不足的场景,无需删除原Swap,直接扩容可避免重启服务中断,操作安全且可逆。
1、关闭当前Swap文件:sudo swapoff /usr/swap/swapfile。
2、使用fallocate将文件扩展至16GB(若原为8GB):sudo fallocate -l 16G /usr/swap/swapfile。
3、重新设置权限以符合安全要求:sudo chmod 0600 /usr/swap/swapfile。
4、重新格式化为Swap类型:sudo mkswap /usr/swap/swapfile。
5、重新启用该Swap文件:sudo swapon /usr/swap/swapfile。
6、验证扩容结果:free -h,确认Swap行total值更新为16.0G且state为active。
二、替换Swap文件并重建更大容量
当原Swap文件存在损坏风险、路径碎片化严重或需彻底重置状态时,建议删除旧文件并新建更大容量Swap文件,确保文件系统一致性与性能稳定性。
1、停用并移除旧Swap:sudo swapoff /usr/swap/swapfile && sudo rm -f /usr/swap/swapfile。
2、创建新Swap目录(如不存在):sudo mkdir -p /usr/swap。
3、生成24GB Swap文件(使用dd保证跨文件系统兼容性):sudo dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=24576。
4、严格限制访问权限:sudo chmod 0600 /usr/swap/swapfile。
5、格式化并立即启用:sudo mkswap /usr/swap/swapfile && sudo swapon /usr/swap/swapfile。
6、检查生效状态:swapon --show,确认size列显示24.0G且type为file。
三、基于LVM逻辑卷动态调整Swap大小
适用于已部署LVM管理的银河麒麟服务器环境,可通过lvresize实现在线扩容(需先停用Swap),支持灵活伸缩且I/O性能更优,适合长期高负载生产系统。
1、停用当前LV Swap设备:sudo swapoff /dev/mapper/klas-lv_swap。
2、扩展逻辑卷容量至8GB:sudo lvresize -L +4G /dev/mapper/klas-lv_swap。
3、重新格式化扩展后的空间:sudo mkswap /dev/mapper/klas-lv_swap。
4、重新激活Swap逻辑卷:sudo swapon /dev/mapper/klas-lv_swap。
5、验证扩容后大小:cat /proc/swaps | grep lv_swap,确认Size字段为8388604(KB)即8GB。
四、同步更新fstab确保开机挂载新大小
所有Swap文件或逻辑卷的大小变更均需写入/etc/fstab,否则系统重启后将恢复原配置,导致虚拟内存优化失效。
1、备份原始fstab文件:sudo cp /etc/fstab /etc/fstab.bak。
2、编辑fstab配置:sudo vim /etc/fstab。
3、定位原有Swap条目(如/usr/swap/swapfile swap swap defaults 0 0),确认其路径与当前实际文件一致。
4、保存退出后执行校验:sudo mount -a,无报错表示fstab语法正确。
5、重启前再次确认:sudo swapon --show输出应与fstab中定义完全匹配。

















