一、简介 Swap 分区

Swap 分区是 Linux 操作系统中用于临时存储数据的一种特殊分区类型。它可以用来辅助物理内存RAM)工作,尤其是在内存不足时,系统会将一些数据从内存移动到 Swap 空间,从而释放内存供其他任务使用。Swap 的本质是磁盘上的一块区域(分区或文件),充当虚拟内存,一般我们可以分为两种类型:

  • Swap 分区:专门划分磁盘空间并设置为 swap 类型的分区。
  • Swap 文件:在文件系统中创建的一个普通文件,功能与 Swap 分区相同
    sudo swapon --show
    ----------------------------------
    # swap 文件
    NAME      TYPE      SIZE USED PRIO
    /swapfile file      4G   0B   -2
    
    # swap 分区
    NAME      TYPE      SIZE USED PRIO
    /dev/sda2 partition 4G   0B   -2
    
    # /dev/sda2 是具体的硬盘类型,HDD/SSD 
    

Swap 分区是传统的虚拟内存实现方式,为操作系统提供内存不足时的备用空间。而在现代系统中(Ubuntu 18.04 开始,默认使用 Swap 文件),Swap 文件更常用,因为它灵活易调整,但对于特定场景(如系统休眠),Swap 分区仍然不可或缺。因此,在 Ubuntu 中调整 swap 交换分区的大小,具体取决于使用的是分区(Swap Partition) 还是交换文件(Swap File) 作为交换空间。

二、调整 Swap 文件大小

  1. 关闭(禁用)当前 Swap 文件

    sudo swapoff /swapfile
    
  2. 删除当前的 Swap 文件

    sudo rm /swapfile
    
  3. 创建新的 Swap 文件并指定大小,以4G为例

    sudo dd if=/dev/zero of=/swapfile bs=1G count=4   # count=4表示创建4个1GB的块
    

    开辟空间

  4. 权限设置

    sudo chmod 600 /swapfile
    

    权限设置

  5. 格式化新的 Swap 文件

    sudo mkswap /swapfile
    

    格式化

  6. 启用新的 Swap 文件

    sudo swapon /swapfile
    
  7. 验证是否启用了新的 Swap

    sudo swapon --show
    
  8. 编辑 fstab 文件,确保 /swapfile 开机自动挂载

    sudo vim /etc/fstab
    
  9. 在 fstab 文件中插入(已有可忽略这步)

    /swapfile none swap sw 0 0
    
  10. 查看当前的 Swap 状态

    free -h
    

    交换区空间

三、调整 Swap 分区大小

  1. 关闭(禁用)当前 Swap 文件

    sudo swapoff -a  
    

    禁用交换区

  2. 使用命令行找到 Swap 分区

    fdisk -l 或者 lsblk -f   # 后续会频繁使用,请关注工具的显示格式
    

    fdisk
    lsblk

  3. 删除旧的 Swap 分区(磁盘分区另见博客),这里为了展示,没有删除旧的交换分区只是停用,可以根据自己情况酌情选择删除与否。

  4. 创建新分区并指定大小
    新分区

  5. 将新分区格式化为 Swap 类型

    sudo mkswap /dev/nvme0n1p12  # 换成自己的分区名
    

    格式化
    在这里插入图片描述

  6. 启用新的 Swap 分区

    sudo swapon /dev/nvme0n1p12
    

    启用新交换区

  7. 验证是否启用了新的 Swap 分区

    sudo swapon --show
    

    验证交换分区

  8. 编辑 fstab 文件,确保 Swap 分区开机自动挂载

    sudo vim /etc/fstab
    
  9. 在 fstab 文件中插入(注意将原交换区注释掉)

    /dev/nvme0n1p12 none swap sw 0 0
    

    在这里插入图片描述

  10. 查看当前的 Swap 状态

    free -h
    

    交换区状态

小结

从 Ubuntu 18.04 开始,Swap 文件已成为默认设置,手动创建 Swap 分区已不是必要步骤。在安装系统的时候,可以只指定 根目录(/)Home 目录(/home) 的分区大小,而不专门为 Swap 创建分区,安装程序会自动创建一个 Swap 文件。安装程序会根据物理内存大小自动计算(通常是内存大小的等量或两倍,具体取决于内存和硬盘空间的实际情况)。以上是两种交换区扩容的方法,相关问题欢迎在评论区讨论!!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐