银河麒麟v10需扩容swap以缓解内存不足导致的卡顿,可采用扩展现有swap文件、替换重建或lvm动态调整三种方法,并须配置fstab实现开机自动挂载。

银河麒麟V10运行内存密集型应用时出现卡顿、响应迟缓或系统提示“内存不足”,说明当前Swap交换分区容量已无法满足运行需求,需立即调整其大小以增强虚拟内存缓冲能力。
扩展现有Swap文件大小
该方法适用于已通过dd或fallocate创建Swap文件但容量不足的场景,无需删除原Swap,直接扩容可避免重启服务中断,操作安全且可逆。
第一步:关闭当前Swap文件:sudo swapoff /usr/swap/swapfile。这一步必须执行,否则后续mkswap会报错“Device or resource busy”。
第二步:使用fallocate将文件扩展至16GB(若原为8GB):sudo fallocate -l 16G /usr/swap/swapfile。注意:此命令仅在ext4/xfs文件系统上生效,btrfs或挂载选项含noatime的分区可能不支持。
第三步:重新设置权限以符合安全要求:sudo chmod 0600 /usr/swap/swapfile。
第四步:重新格式化为Swap类型:sudo mkswap /usr/swap/swapfile。
第五步:重新启用该Swap文件:sudo swapon /usr/swap/swapfile。
第六步:验证扩容结果:free -h,确认Swap行total值更新为16.0G且state为active。
替换Swap文件并重建更大容量
当原Swap文件存在损坏风险、路径碎片化严重或需彻底重置状态时,建议删除旧文件并新建更大容量Swap文件,确保文件系统一致性与性能稳定性。
方法一:停用并移除旧Swap:sudo swapoff /usr/swap/swapfile && sudo rm -f /usr/swap/swapfile。
方法二:创建新Swap目录(如不存在):sudo mkdir -p /usr/swap。
方法三:生成24GB Swap文件(使用dd保证跨文件系统兼容性):sudo dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=24576。这一步耗时较长但兼容所有文件系统,比fallocate更稳妥。
方法四:严格限制访问权限:sudo chmod 0600 /usr/swap/swapfile。
方法五:格式化并立即启用:sudo mkswap /usr/swap/swapfile && sudo swapon /usr/swap/swapfile。
基于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。注意:此处+4G表示在原有基础上增加4GB,不是设为绝对值。
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文件:sudo vim /etc/fstab。
在文件末尾新增一行:/usr/swap/swapfile none swap sw 0 0。注意路径必须与你创建的文件完全一致,不能写成/swapfile或/usr/swap/swapfile2。
保存退出后执行:sudo swapon --verify检查语法是否正确,再运行sudo mount -a加载新配置。











