如何扩大Ubuntu Swap容量
扩大Ubuntu系统的Swap容量可通过创建/扩展Swap文件(适用于大多数场景,推荐)或调整Swap分区(适用于传统分区布局)实现。以下是详细步骤:
在操作前,需确认系统当前Swap使用情况及剩余磁盘空间:
sudo swapon --show # 查看已启用的Swap设备及大小
free -h # 查看内存与Swap总容量(人类可读格式)
df -h # 查看磁盘剩余空间(确保有足够空间扩展)
适用于未使用LVM或希望快速扩展的场景,步骤如下:
使用fallocate(高效,推荐)或dd(兼容性好)命令创建指定大小的文件(以4GB为例):
sudo fallocate -l 4G /swapfile # 推荐:快速分配4GB文件
# 或
sudo dd if=/dev/zero of=/swapfile bs=1G count=4 # 兼容:逐块写入4GB(耗时较长)
Swap文件需仅root可读写,防止未经授权访问:
sudo chmod 600 /swapfile
将文件转换为Swap格式:
sudo mkswap /swapfile
立即激活新的Swap空间:
sudo swapon /swapfile
确认Swap容量已增加:
sudo swapon --show # 应显示新Swap文件及总大小
free -h # 查看SwapTotal是否增加
编辑/etc/fstab文件,添加以下行(确保重启后自动启用):
sudo nano /etc/fstab
在文件末尾添加:
/swapfile none swap sw 0 0
保存并退出(Ctrl+O→Enter→Ctrl+X)。
若系统使用传统分区(非LVM),需通过gparted工具调整分区大小,步骤如下:
sudo swapoff /dev/sdXn # 替换为你的Swap分区(如/dev/sda2)
使用gparted图形工具(或growpart命令行工具)调整分区:
gparted→选中Swap分区→右键选择Resize/Move→拖动滑块扩大分区→点击Apply。/dev/sda2):sudo growpart /dev/sda 2 # 扩展/dev/sda2分区
sudo mkswap /dev/sdXn # 重新格式化分区
sudo swapon /dev/sdXn
同方法一的验证步骤。
若系统使用LVM(逻辑卷管理),可通过扩展逻辑卷实现动态扩容,步骤如下:
sudo swapoff /dev/mapper/vgname-swapname # 替换为你的Swap逻辑卷(如/dev/mapper/ubuntu--vg-swap_1)
使用lvextend命令增加逻辑卷大小(以**+2GB**为例):
sudo lvextend -L +2G /dev/mapper/vgname-swapname # 扩展2GB
# 或扩展至指定大小(如20GB)
# sudo lvextend -L 20G /dev/mapper/vgname-swapname
sudo mkswap /dev/mapper/vgname-swapname # 重新格式化(会清除原有数据)
sudo swapon /dev/mapper/vgname-swapname
同方法一的验证步骤。
Swappiness控制系统使用Swap的倾向(默认值60,范围0-100)。降低该值可减少Swap使用,提升性能(尤其内存充足时):
# 查看当前值
cat /proc/sys/vm/swappiness
# 临时修改(立即生效)
sudo sysctl vm.swappiness=10
# 永久修改(重启生效)
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
600,防止未授权访问。通过以上方法,可根据系统配置灵活扩大Ubuntu的Swap容量,提升系统内存管理能力。