麒麟操作系统中可通过创建Swap文件(dd或fallocate)、LVM逻辑卷或配置fstab实现虚拟内存扩展,以缓解内存不足导致的卡顿,所有方法均需设置权限、格式化、启用并验证生效。

如果您在麒麟操作系统(KylinOS)中运行内存密集型应用时出现卡顿、响应迟缓或系统提示“内存不足”,则可能是物理内存已接近耗尽,需通过设置虚拟内存(Swap分区)来缓解压力。以下是针对KylinOS设置Swap分区的多种可行方法:
一、通过dd命令创建Swap文件并启用
该方法无需修改磁盘分区结构,适用于所有KylinOS版本(含V10 SP1/SP2、V11),尤其适合无法重新分区的生产服务器环境,操作灵活且风险可控。
1、以root身份打开终端,执行free -h确认当前Swap为0或容量不足。
2、创建专用目录:mkdir -p /usr/swap。
3、使用dd生成Swap文件(示例创建8GB):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、运行free -h验证Swap行total值已更新为8.0G且state为active。
二、使用fallocate快速创建Swap文件
fallocate比dd更高效,直接分配磁盘空间而不写零,适用于支持ext4/xfs等现代文件系统的KylinOS主机,显著缩短创建时间。
1、确保目标路径所在分区支持fallocate(如/ext4):df -T /usr。
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、检查生效状态:swapon --show,确认type为file、size为16.0G。
三、基于LVM逻辑卷创建Swap分区
适用于已部署LVM管理的KylinOS服务器,可获得更高I/O吞吐与在线扩容能力,Swap空间由逻辑卷直接提供,性能优于文件方式。
1、查看可用卷组容量:vgdisplay,确认有足够空闲PE。
2、创建4GB逻辑卷:lvcreate -L 4G -n lv_swap klas(klas为卷组名)。
3、格式化为Swap:mkswap /dev/mapper/klas-lv_swap。
4、激活逻辑卷Swap:swapon /dev/mapper/klas-lv_swap。
5、验证设备路径与大小:cat /proc/swaps,输出应包含该LV完整路径。
四、配置Swap开机自动挂载
为保障Swap在每次系统启动后持续生效,必须将Swap设备信息写入/etc/fstab,避免因重启导致虚拟内存失效。
1、使用vim编辑fstab:vim /etc/fstab。
2、在末尾新增一行(以文件方式为例):/usr/swap/swapfile swap swap defaults 0 0。
3、若使用LVM方式,则填写:/dev/mapper/klas-lv_swap swap swap defaults 0 0。
4、测试fstab语法正确性:mount -a,无任何输出即表示成功。
5、执行swapon -a强制加载fstab中全部Swap项。
五、验证Swap配置有效性
仅显示Swap存在不足以证明其可被内核正常调度,需通过多命令交叉验证实际可用性与持久性。
1、检查总量与使用状态:free -h,确认Swap行total非零、used可随内存压力动态增长。
2、列出已启用Swap设备:swapon --show=NAME,TYPE,SIZE,USED,PRIORITY。
3、查看内核Swap活动统计:grep -i "swappiness\|swap" /proc/sys/vm/,确认swappiness值合理(默认60)。
4、模拟内存压力触发Swap写入:dd if=/dev/zero of=/tmp/testfile bs=1M count=2048 && sync,随后观察free -h中used值变化。


















