SWAP 分区可以在系统运行内存不足时将一部分未使用的内存文件转存在此分区以减轻动态内存的压力,SWAP 分区以专用的 SWAP 格式存在于硬盘当中。下面将介绍在 Ubuntu 中如何调整 SWAP 分区的空间及 SWAP 分区的活跃度。


创建 SWAP 分区

检查是否已启用 SWAP 空间

1
$ sudo swapon --show   #未启用SWAP分区的话,执行此命令将不会有任何输出

创建 SWAP 文件

在添加 SWAP 文件时,建议创建的文件大小为实际物理内存的 2-3 倍。

1
2
3
$ sudo fallocate -l 2G /swapfile      #创建大小依据实际物理内存大小自行调整
#或使用dd命令创建
$ sudo dd if=/dev/zero of=/swapfile bs=512M count=4

创建完成后,给与 SWAP 文件 600 权限

1
$ sudo chmod 600 /swapfile

标注 SWAP 区域

1
$ sudo mkswap /swapfile

激活 SWAP 分区

1
$ sudo swapon /swapfile

查看 SWAP 分区是否工作

1
2
$ sudo swapon --show
$ sudo free -h

将创建的 SWAP 分区设置为永久分区,将 SWAP 路径写入到/etc/fstab文件中

1
/swapfile swap swap defaults 0 0

删除 SWAP 分区

停用 SWAP

1
$ sudo swapoff -v /swapfile

/etc/fstab文件中删除 SWAP 路径。
删除 SWAP 分区文件

1
$ sudo rm /swapfile

Swappiness 用于定义 Linux 系统使用 SWAP 空间的频率。Swappiness 值可以从 0 至 100,较低的值会让内核尽可能少的使用 SWAP 空间,而较高的值将让 Linux Kernel 能够更加积极地使用 SWAP 分区。默认的 Swappiness 值为 60,这里可以根据实际需要自行调整。

调整 SWAP 分区活跃度(Swappiness)

查看当前系统设置的 Swappiness 值

1
$ cat /proc/sys/vm/swappiness

临时调整系统 Swappiness 值

1
$ sudo sysctl vm.swappiness=60    #这里的值可以设置在0-100,根据环境需求自行调整

设置永久性的 Swappiness 值

编辑/etc/sysctl.conf文件,在最后添加以下内容

1
vm.swappiness=60