需调整交换空间容量以满足内存调度需求,方法包括:一、替换交换文件;二、重建交换分区;三、扩展lvm逻辑卷;四、修改systemd交换单元参数。

如果您已配置交换分区或交换文件,但当前容量无法满足内存调度需求,则需调整其大小以适配实际负载。以下是调整交换空间容量的多种方法:
一、调整现有交换文件大小
当系统使用交换文件(如/swapfile)时,可通过替换旧文件方式实现容量变更,操作不依赖磁盘分区结构,适用于已部署系统。
1、关闭当前启用的交换文件:sudo swapoff /swapfile。
2、删除原交换文件:sudo rm -f /swapfile。
3、创建新大小的交换文件(例如8GB):sudo fallocate -l 8G /swapfile。
4、重设权限防止未授权访问:sudo chmod 600 /swapfile。
5、重新格式化为swap类型:sudo mkswap /swapfile。
6、立即启用新交换文件:sudo swapon /swapfile。
7、验证生效状态:swapon --show | grep file,确认SIZE列显示新值。
二、重建图形化创建的交换分区
若原交换分区通过分区编辑器创建且磁盘存在可释放空间,可删除并重建分区以变更大小,该方式适用于桌面版用户且需重启生效。
1、在启动器中搜索并打开分区编辑器,输入密码授权。
2、右上角选择目标硬盘,定位原交换分区(FSTYPE列为swap)。
3、右键该分区,选择删除;注意:此操作将清除该分区全部数据。
4、在释放出的未分配区域右键→新建,弹出配置窗口。
5、设置文件系统类型为交换分区,输入新大小(如物理内存为6GB则设为6GB)。
6、点击确定后,点击界面左上角应用按钮执行格式化与写入。
7、操作完成后重启系统,使内核识别新交换分区并自动启用。
三、通过LVM逻辑卷调整交换空间容量
若交换空间位于LVM逻辑卷(如/dev/vg0/swap_lv),可利用LVM弹性特性在线调整大小,无需重启且支持热操作。
1、确认交换逻辑卷路径:swapon --show | grep lvm,记录NAME列值(如/dev/vg0/swap_lv)。
2、关闭该交换设备:sudo swapoff /dev/vg0/swap_lv。
3、扩展逻辑卷至新大小(例如扩展至12GB):sudo lvextend -L 12G /dev/vg0/swap_lv。
4、重新格式化该逻辑卷为swap:sudo mkswap /dev/vg0/swap_lv。
5、重新启用:sudo swapon /dev/vg0/swap_lv。
6、验证结果:swapon --show | grep /dev/vg0/swap_lv,检查SIZE是否更新。
四、修改systemd管理的交换单元挂载参数
当交换设备由systemd单元(如dev-disk-by\x2duuid-xxxxxx.swap)管理时,可通过编辑对应单元文件覆盖默认挂载行为,从而间接控制启用容量范围。
1、列出所有swap单元:systemctl list-unit-files | grep swap。
2、识别目标单元完整名称(含转义符),例如:dev-disk-by\x2duuid-1a2b3c4d.swap。
3、查看其当前配置:sudo systemctl cat "dev-disk-by\x2duuid-1a2b3c4d.swap"。
4、创建覆盖目录:sudo mkdir -p /etc/systemd/system/dev-disk-by\x2duuid-1a2b3c4d.swap.d。
5、新建覆盖文件:sudo nano /etc/systemd/system/dev-disk-by\x2duuid-1a2b3c4d.swap.d/override.conf。
6、在文件中添加以下内容(指定优先级及noauto等参数):[Unit]\nDescription=Custom swap override\n\n[Swap]\nPriority=10。
7、重载配置并重启单元:sudo systemctl daemon-reload && sudo systemctl restart "dev-disk-by\x2duuid-1a2b3c4d.swap"。










