如何在 Debian 10 Linux 上添加交换空间

交换空间是磁盘上的空间,当物理内存量已满时使用。当 Linux 系统用完 RAM 时,非活动页面会从 RAM 移动到交换空间。

交换空间可以采用专用交换分区或交换文件的形式。通常,在运行 Debian 虚拟机时,不存在交换分区,因此唯一的选择是创建交换文件。

本教程将指导您完成在 Debian 10 Buster 上添加交换文件的步骤。

在你开始之前

虽然可能,但在一台机器上有多个交换空间并不常见。要检查 Debian 安装是否已启用交换,请运行以下命令:

sudo swapon --show

如果输出为空,则表示系统没有交换空间。

否则,如果你得到类似下面的东西,你已经在你的 Debian 系统上启用了交换。

NAME      TYPE      SIZE USED PRIO
/dev/sda2 partition   4G   0B   -1

要激活交换,运行命令的用户必须具有 sudo 权限

创建交换文件

在这个例子中,我们将创建并激活 1G 的交换分区 。要创建更大的交换,请替换 1G 为所需交换空间的大小。

以下步骤显示如何在 Debian 10 上添加交换空间。

  1. 首先创建一个用于交换的文件:

    sudo fallocate -l 1G /swapfile
    

    如果 fallocate 未安装,或者您收到错误消息,提示 fallocate failed: Operation not supported 您可以使用以下命令创建交换文件:

    sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
    
  2. 只有 root 用户才能读取和写入交换文件。发出以下命令以设置正确的权限:

    sudo chmod 600 /swapfile
    
  3. 使用该 mkswap 工具在文件上设置 Linux 交换区域:

    sudo mkswap /swapfile
    
  4. 激活交换文件:

    sudo swapon /swapfile
    

    如果要永久激活,则打开 /etc/fstab 文件:

    sudo nano /etc/fstab
    

    并粘贴以下行:

    /swapfile swap swap defaults 0 0
    
  5. 使用 swaponfree 命令验证交换是否处于活动状态,如下所示:

    sudo swapon --show
    
    NAME      TYPE  SIZE   USED PRIO
    /swapfile file 1024M 507.4M   -1
    sudo free -h
    
                total        used        free      shared  buff/cache   available
    Mem:           488M        158M         83M        2.3M        246M        217M
    Swap:          1.0G        506M        517M

调整 Swappiness 值

Swappiness 是一个 Linux 内核属性,用于定义系统使用交换空间的频率。 Swappiness 可以具有 0 到 100 之间的值。较低的值将使内核尽可能避免交换,而较高的值将使内核更积极地使用交换空间。

默认的 swappiness 值为 60. 您可以使用以下 cat 命令检查当前的 swappiness 值:

cat /proc/sys/vm/swappiness
60

虽然桌面系统上 swappiness 的值可以使用 60,但对于生产服务器,您应该设置较低的值。

例如,要将 swappiness 值设置为 10 ,请键入:

sudo sysctl vm.swappiness=10

要使此参数在重新引导后保持不变,请将以下行附加到 /etc/sysctl.conf 文件:

vm.swappiness=10

最佳 swappiness 值取决于您的系统工作负载以及内存的使用方式。您应该以小增量调整此参数以查找最佳值。

删除交换文件

要停用并删除交换文件,请执行以下步骤:

  1. 通过运行以下命令来停用交换空间:

    sudo swapoff -v /swapfile
    
  2. /etc/fstab 使用文本编辑器打开文件,然后删除交换文件条目 /swapfile swap swap defaults 0 0

  3. 最后,删除实际的 swapfile 文件:

    sudo rm /swapfile
    

结论

您已经学习了如何在 Debian 10 计算机上创建交换文件并激活和配置交换空间。