Ubuntu 20.04 SWAP 交换分区相关操作

执行 sudo swapon -s 命令,查看是否已经存在swap file

如果存在 swapfile 则需要先禁用

1
sudo swapoff /swapfile

swap 设置大小参考表

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
 物理内存(MB)  不需要休眠  需要休眠  最大值
 256          256       512     512
 512          512       1024    1024
 1024         1024      2048    2048

物理内存(GB)  不需要休眠  需要休眠  最大值
  1          1         2        2
  2          1         3        4
  3          2         5        6
  4          2         6        8
  5          2         7        10
  6          2         8        12
  8          3         11       16
  12         3         15       24
  16         4         20       32
  24         5         29       48
  32         6         38       64
  64         8         72       128
  128        11       139       256

在Red Hat Enterprise Linux 中,以下是设置合适的交换分区大小的规则:

物理内存交换分区(SWAP)
<= 4G至少4G
4~16G至少8G
16G~64G至少16G
64G~256G至少32G

以下步骤在 Ubuntu 20.04 系统中添加 SWAP 交换文件:

1、通过以下命令创建一个用于 swap 的文件:

1
sudo fallocate -l 1G /swapfile

2、执行以下命令为 swapfile 文件设置正确的权限:

1
sudo chmod 600 /swapfile

3、使用 mkswap 实用程序在文件上设置 Linux SWAP 区域:

1
sudo mkswap /swapfile

4、使用以下命令激活 swap 文件:

1
sudo swapon /swapfile

5、要让创建好的 swap 分区永久生效,可以将 swapfile 路径内容写入到 /etc/fstab 文件当中:

1
sudo bash -c 'echo "/swapfile swap swap defaults 0 0" >> /etc/fstab'

6、使用 swapon 或 free 命令验证 SWAP 是否处于活动状态,如下所示:

1
2
3
4
5
6
sudo swapon --show
sudo free -h
root@LANCE-IDCF-2:/# sudo free -h
              总计         已用        空闲      共享    缓冲/缓存    可用
内存:        961M        730M         91M        5.8M        139M         89M
交换:        1.0G        268K        1.0G

在Ubuntu 20.04系统中调整Swappiness值的方法

Swappiness 是一个 Linux 内核属性,用于定义 Linux 系统使用 SWAP 空间的频率,Swappiness 值可以从 0 至 100,较低的值会让内核尽可能少的使用 SWAP 空间,而较高的值将让 Linux Kernel 能够更加积极地使用 SWAP 分区。

Ubuntu 20.04 默认的 Swappiness 值为 60,可以使用如下命令来查看:

1
cat /proc/sys/vm/swappiness

值为 60 对于 Ubuntu 20.04 桌面还算行,但对于 Ubuntu Server 来说,SWAP 的使用频率就比较高了,所以可能需要设置较低的值,例如,要将 swappiness 值设置为 40,请执行以下命令:

1
sudo sysctl vm.swappiness=40

如果要让设置在系统重启后依然有效,则必要在 /etc/sysctl.conf 文件中添加 vm.swappiness=40:

1
sudo bash -c 'echo "vm.swappiness=40" >> /etc/sysctl.conf'

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

在Ubuntu 20.04系统中移除SWAP分区的方法

要在 Ubuntu 20.04 系统中停用并删除 SWAP 文件,请按照下列步骤操作:

1、首先输入以下命令停用 SWAP 空间:

1
sudo swapoff -v /swapfile

2、在 /etc/fstab 文件中删除有效 swap 的行。

3、最后执行以下命令删除 swapfile 文件:

1
sudo rm /swapfile

至此,已成功在 Ubuntu 20.04 中删除 SWAP 分区,如果要重新启用,请按照在 Ubuntu 20.04 系统中创建 SWAP 分区文件的方法操作。