麒麟OS中物理内存不足等问题可通过配置Swap解决,方法包括:一、fallocate创建Swap文件;二、LVM逻辑卷创建Swap分区;三、裸设备分区创建Swap空间;四、fstab配置开机自动挂载;五、重启验证持久化效果。

如果您在麒麟OS系统中发现物理内存不足、系统响应迟缓或应用程序频繁被OOM Killer终止,则很可能是由于未配置或Swap空间不足所致。以下是针对该问题的多种配置方法:
一、使用fallocate创建Swap文件
该方法通过快速分配磁盘空间生成Swap文件,效率高且不写入实际零数据,适用于大多数生产环境。
1、检查当前Swap状态:执行 free -h 命令,确认“Swap”行total值是否为0。
2、创建2GB大小的Swap文件:执行 sudo fallocate -l 2G /usr/swapfile。
3、若提示“fallocate: Operation not supported”,则改用dd命令:sudo dd if=/dev/zero of=/usr/swapfile bs=1M count=2048。
4、设置严格权限:执行 sudo chmod 0600 /usr/swapfile。
5、格式化为Swap类型:执行 sudo mkswap /usr/swapfile。
6、立即启用:执行 sudo swapon /usr/swapfile。
7、验证启用结果:再次运行 free -h,确认Swap total已显示2.0G。
二、基于LVM逻辑卷创建Swap分区
该方法适用于已部署LVM管理的服务器环境,可提供更稳定的I/O性能与灵活的空间调整能力。
1、确认卷组剩余空间:执行 sudo vgdisplay,查看“Free PE / Size”字段是否足够分配目标容量(如4GB)。
2、创建名为swap_lv的逻辑卷:执行 sudo lvcreate -L 4G -n swap_lv klas(其中klas为卷组名)。
3、将新逻辑卷格式化为Swap:执行 sudo mkswap /dev/klas/swap_lv。
4、启用该Swap设备:执行 sudo swapon /dev/klas/swap_lv。
5、确认生效:运行 swapon --show,输出中应包含/dev/klas/swap_lv及其大小。
三、使用裸设备分区创建Swap空间
该方法直接利用未挂载的物理分区作为Swap,避免文件系统开销,适合对延迟敏感的关键业务节点。
1、列出可用磁盘设备:执行 sudo fdisk -l | grep "^Disk /dev/",识别未使用的空闲磁盘(如/dev/sdb)。
2、对目标磁盘创建单一分区:执行 sudo fdisk /dev/sdb,依次输入 n → p → 1 → 回车 → 回车 → t → 82 → w,将分区类型设为Linux swap(代码82)。
3、重读分区表:执行 sudo partprobe /dev/sdb。
4、格式化新分区:执行 sudo mkswap /dev/sdb1。
5、启用并验证:执行 sudo swapon /dev/sdb1 && free -h,观察Swap total是否更新。
四、配置开机自动挂载Swap
确保所创建的Swap空间在每次系统重启后仍保持激活状态,防止因手动遗漏导致服务异常。
1、打开fstab文件:执行 sudo vim /etc/fstab。
2、在文件末尾添加对应条目:若使用Swap文件,写入 /usr/swapfile none swap sw 0 0;若使用LVM逻辑卷,写入 /dev/klas/swap_lv none swap sw 0 0;若使用裸分区,写入 /dev/sdb1 none swap sw 0 0。
3、保存退出后,执行 sudo mount -a 检查fstab语法是否正确,无报错即表示配置合法。
五、验证Swap持久化与运行状态
模拟真实重启流程,确认Swap配置已完整集成至系统生命周期管理中。
1、执行重启命令:输入 sudo reboot -h now。
2、系统重启完成后立即登录,运行 free -h。
3、检查输出中Swap行的total值是否与设定容量一致,且state列为active。
4、进一步确认:执行 swapon --show=NAME,TYPE,SIZE,USED,PRIORITY,核对设备路径、类型及优先级是否符合预期。

















