插件窝 干货文章 Ubuntu怎么创建、删除和调整 SWAP 空间? Linux修改swap交换空间的技巧

Ubuntu怎么创建、删除和调整 SWAP 空间? Linux修改swap交换空间的技巧

SWAP swapfile sudo 文件 95    来源:    2025-05-10

在 Ubuntu 系统中管理 SWAP 空间(虚拟内存)是优化系统性能的重要操作。以下是详细的创建、删除和调整 SWAP 空间的步骤:


一、检查当前 SWAP 状态

sudo swapon --show      # 查看活动的SWAP分区/文件
free -h                 # 查看内存和SWAP使用情况
cat /proc/swaps         # 查看SWAP详细信息

二、创建新的 SWAP 空间

方法1:使用单独分区

  1. 创建分区(假设使用 /dev/sdXN):

    sudo fdisk /dev/sdX   # 创建新分区,类型改为Linux swap (82)
    sudo mkswap /dev/sdXN # 格式化分区为SWAP
    sudo swapon /dev/sdXN # 启用SWAP
    
  2. 永久生效:
    编辑 /etc/fstab 添加:

    /dev/sdXN none swap sw 0 0
    

方法2:使用交换文件(推荐)

  1. 创建交换文件(例如 4GB):

    sudo fallocate -l 4G /swapfile  # 或使用 dd if=/dev/zero of=/swapfile bs=1M count=4096
    sudo chmod 600 /swapfile        # 设置权限
    sudo mkswap /swapfile           # 格式化
    sudo swapon /swapfile           # 启用
    
  2. 永久生效:
    编辑 /etc/fstab 添加:

    /swapfile none swap sw 0 0
    

三、调整 SWAP 空间大小

1. 增加 SWAP

  • 交换文件方式
    先关闭现有交换文件,重新创建更大的文件: bash sudo swapoff /swapfile sudo rm /swapfile sudo fallocate -l 8G /swapfile # 调整为8GB sudo mkswap /swapfile && sudo swapon /swapfile

2. 减少 SWAP

同样需要先关闭交换文件,然后缩小文件大小后重新启用。


四、删除 SWAP 空间

  1. 关闭 SWAP: bash sudo swapoff /swapfile # 或 sudo swapoff /dev/sdXN
  2. 删除文件或分区: bash sudo rm /swapfile # 删除交换文件 # 或使用 fdisk 删除分区
  3. /etc/fstab 中移除对应行。

五、优化 SWAP 参数

  1. 调整 swappiness(默认值60)
    临时修改:

    sudo sysctl vm.swappiness=10  # 值越低,越少使用SWAP(0-100)
    

    永久生效:
    编辑 /etc/sysctl.conf 添加:

    vm.swappiness=10
    
  2. 调整缓存压力(vfs_cache_pressure)
    减少内存缓存回收频率:

    vm.vfs_cache_pressure=50
    

注意事项

  1. 休眠(hibernate)支持
    SWAP 空间需 ≥ 物理内存大小才能支持休眠。
  2. SSD 寿命
    频繁写入可能影响 SSD 寿命,可适当降低 swappiness
  3. 性能监控
    使用 vmstat 1top 监控 SWAP 使用情况。

通过以上步骤,你可以灵活管理 Ubuntu 的 SWAP 空间以适应不同场景需求。