ubuntu

如何增加Ubuntu Swap容量

小樊
48
2025-10-20 15:38:54
栏目: 智能运维

如何增加Ubuntu Swap容量
增加Ubuntu系统的Swap容量可通过创建/调整Swap文件(推荐,适用于大多数场景)或扩展现有Swap分区(适用于传统分区布局)实现。以下是详细步骤及注意事项:

一、前置准备:检查当前Swap状态

在操作前,需确认系统当前Swap使用情况及磁盘空间是否充足:

sudo swapon --show      # 查看已启用的Swap设备及大小
free -h                 # 查看内存与Swap总容量
df -h                   # 查看磁盘剩余空间(确保有足够空间创建Swap文件)

二、方法一:创建/调整Swap文件(推荐)

Swap文件是动态扩展Swap容量的最常用方式,适用于所有Ubuntu版本(尤其是使用UEFI启动的系统)。

1. 关闭现有Swap文件(若已存在)

若系统已通过Swap文件提供Swap空间,需先禁用并删除旧文件(可选):

sudo swapoff /swapfile    # 禁用Swap文件
sudo rm /swapfile         # 删除旧文件(谨慎操作,确保无重要数据)

2. 创建新Swap文件

使用fallocate(快速,推荐)或dd(兼容性好)命令创建指定大小的Swap文件(例如8GB):

sudo fallocate -l 8G /swapfile    # 推荐:快速分配8GB空间
# 或
sudo dd if=/dev/zero of=/swapfile bs=1G count=8    # 兼容:逐块写入8GB零数据

3. 设置文件权限

Swap文件需限制为仅root可读写,避免安全风险:

sudo chmod 600 /swapfile

4. 格式化为Swap空间

将文件转换为Swap格式,使其可被系统识别:

sudo mkswap /swapfile

5. 启用Swap文件

立即激活新Swap文件,使系统开始使用:

sudo swapon /swapfile

6. 设置开机自动挂载

编辑/etc/fstab文件,添加以下行以确保重启后自动启用Swap文件:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

7. 验证结果

确认Swap容量已增加:

sudo swapon --show      # 查看Swap设备及大小
free -h                 # 查看总Swap容量

三、方法二:扩展现有Swap分区(传统分区布局)

若系统使用传统MBR/GPT分区表且已分配Swap分区(而非Swap文件),需通过分区工具调整分区大小。

1. 关闭现有Swap分区

sudo swapoff /dev/sdXn    # 替换为你的Swap分区(如/dev/nvme0n1p3)

2. 调整分区大小

使用gparted图形工具(推荐新手)或fdisk命令行工具扩展Swap分区:

3. 重新格式化Swap分区

sudo mkswap /dev/sdXn    # 替换为新分区名

4. 启用Swap分区

sudo swapon /dev/sdXn

5. 更新/etc/fstab

编辑/etc/fstab,将旧分区路径替换为新分区路径(若分区名未变,可跳过):

sudo nano /etc/fstab

将原行(如/dev/sdXm none swap sw 0 0)修改为/dev/sdXn none swap sw 0 0,保存退出。

四、方法三:使用LVM扩展Swap(逻辑卷管理)

若系统使用LVM(逻辑卷管理),可通过LVM工具灵活扩展Swap空间,无需调整物理分区。

1. 关闭Swap

sudo swapoff -a

2. 扩展逻辑卷(LV)

假设Swap逻辑卷名为/dev/vgubuntu/swap_1,需扩展2GB:

sudo lvextend -L +2G /dev/vgubuntu/swap_1    # 扩展2GB
# 或扩展至指定大小(如20GB)
sudo lvextend -L 20G /dev/vgubuntu/swap_1

3. 重置Swap签名并启用

sudo mkswap /dev/vgubuntu/swap_1    # 重置Swap签名
sudo swapon /dev/vgubuntu/swap_1    # 启用

4. 更新/etc/fstab

确保/etc/fstab中仍指向原逻辑卷路径(LVM路径不变,无需修改):

/dev/vgubuntu/swap_1 none swap sw 0 0

五、调整Swappiness(可选优化)

Swappiness参数控制内核使用Swap的频率(范围0-100,默认60)。降低该值可减少Swap使用,提升系统响应速度(适合桌面系统):

sudo sysctl vm.swappiness=10    # 临时生效(重启失效)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf    # 永久生效

六、注意事项

  1. 空间充足:确保磁盘有足够未分配空间(创建Swap文件)或未使用分区(扩展现有分区)。
  2. 备份数据:扩展现有分区或LVM前,备份重要数据(避免操作失误导致数据丢失)。
  3. 性能建议:SSD用户优先使用Swap文件(随机读写性能更好);机械硬盘用户可选择分区方式。
  4. 休眠支持:若需系统休眠功能,Swap大小需≥物理内存(RAM)容量。
  5. 验证重启:修改/etc/fstab后,重启系统确认Swap自动启用:
    sudo reboot
    free -h
    

0
看了该问题的人还看了