银河麒麟v10内存紧张时,可通过文件、fallocate、物理分区、lvm四种方式创建swap,并必须写入/etc/fstab实现开机自动挂载,否则重启后失效。

如果您在使用银河麒麟V10过程中发现内存紧张、系统响应迟缓或出现因OOM(Out of Memory)触发的进程被强制终止现象,则很可能是Swap交换空间不足或未配置所致。以下是针对该系统增加Swap交换分区的多种可行方法:
一、使用文件方式创建Swap(推荐用于无空闲分区场景)
该方法不依赖磁盘物理分区,通过在已有文件系统中创建专用交换文件实现,操作灵活、风险低,适用于所有Kylin V10版本(含SP1/SP2/V11),尤其适合虚拟机或磁盘已满环境。
1、以root身份打开终端,执行free -h确认当前Swap状态为空或容量不足。
2、创建专用目录:mkdir -p /usr/swap。
3、使用dd命令生成8GB Swap文件:dd if=/dev/zero of=/usr/swap/swapfile bs=1M count=8192。
4、严格设置权限:chmod 0600 /usr/swap/swapfile。
5、格式化为Swap类型:mkswap /usr/swap/swapfile。
6、立即启用:swapon /usr/swap/swapfile。
7、验证生效:swapon --show,确认type列为file且size为8.0G。
二、使用fallocate快速创建Swap文件(适用于ext4/xfs文件系统)
fallocate直接分配磁盘块而不写零,比dd更高效,可显著缩短创建时间,但要求目标分区支持该操作(如ext4、xfs),不适用于btrfs或某些挂载选项受限的场景。
1、检查文件系统类型:df -T /usr | tail -1 | awk '{print $2}',确认输出为ext4或xfs。
2、创建16GB Swap文件:fallocate -l 16G /usr/swap/swapfile2。
3、设置安全权限:chmod 0600 /usr/swap/swapfile2。
4、格式化并启用:mkswap /usr/swap/swapfile2 && swapon /usr/swap/swapfile2。
5、验证状态:free -h | grep Swap,确认total值更新为16.0G。
三、使用物理分区创建Swap(高性能首选方案)
该方式通过划分独立磁盘分区作为Swap空间,绕过文件系统层,I/O性能更高、延迟更低,适合对稳定性与吞吐要求严格的服务器环境。
1、查看可用磁盘及空闲空间:lsblk与fdisk -l结合确认未分配区域(如/dev/sdb末尾空闲扇区)。
2、使用fdisk /dev/sdb新建分区:输入n→p→指定起止扇区→输入t→设类型为82(Linux swap)→w保存。
3、格式化新分区:mkswap /dev/sdb1(假设新分区为sdb1)。
4、启用该分区:swapon /dev/sdb1。
5、验证激活状态:swapon --show=NAME,TYPE,SIZE,确认设备路径与大小正确。
四、使用LVM逻辑卷创建Swap(适用于LVM部署环境)
当系统已采用LVM管理存储时,可通过扩展逻辑卷方式构建Swap,具备在线调整能力与良好的容量管理弹性,适合生产级长期运行系统。
1、创建4GB逻辑卷:lvcreate -L 4G -n swap klas(假设卷组名为klas)。
2、格式化为Swap:mkswap /dev/mapper/klas-swap。
3、启用Swap设备:swapon /dev/mapper/klas-swap。
4、确认挂载状态:free -h中Swap行应显示4.0G。
5、向/etc/fstab追加持久化条目:echo "/dev/mapper/klas-swap swap swap defaults 0 0" >> /etc/fstab。
五、配置开机自动挂载并验证持久性
所有上述方法启用的Swap在重启后将失效,必须将配置写入/etc/fstab才能确保每次启动自动加载,否则优化效果无法延续。
1、确认当前Swap设备路径:swapon --show=NAME | tail -1,获取如/usr/swap/swapfile或/dev/sdb1等完整路径。
2、编辑fstab文件:sudo nano /etc/fstab。
3、在文件末尾新增一行:/usr/swap/swapfile swap swap defaults 0 0(路径需与实际一致)。
4、测试fstab语法正确性:sudo mount -a,无报错即表示配置有效。
5、重启系统后执行swapon --show,确认Swap设备仍处于active状态。











