目录

Linux添加swap

给 Linux 服务器添加swap做了好几次了,每一次都没记住,临时去网上查命令,这里特地记录一下

查看当前swap

1
sudo swapon --show

如果没有输出说明没有swap

也可以通过free命令来查看

1
free -h

添加swap

添加swap基本步骤: 创建一个大文件 -> 初始化文件为swap交换文件格式 -> 启用这个文件

创建大文件

先找一个剩余空间大点的地方创建一个大文件,这里以1G的大小为例,一般swap空间大小以真实物理内存1-2倍大小

1
2
3
4
# 我喜欢用的方法,速度快
sudo fallocate -l 1G /swapfile
# 如果没有安装可以用dd命令,比较慢
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

修改文件的权限

1
sudo chmod 600 /swapfile

初始化文件

创建完文件后需要将文件进行初始化,标记为swap文件格式

1
sudo mkswap /swapfile

启用swap

接下来使用 命令启用这个swap交换文件

1
sudo swapon /swapfile

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

1
/swapfile swap swap defaults 0 0

检查

用一开始的命令检查一下swap是否启用正常

移除SWAP分区

根据添加的顺序反着来就行: 取消swap -> 删除swap分页文件

取消swap

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

1
sudo swapoff -v /swapfile

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

删除文件

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

1
sudo rm /swapfile

调整Swappiness值

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

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

1
cat /proc/sys/vm/swappiness

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

1
sudo sysctl vm.swappiness=40

如果要让设置在系统重启后依然有效,则必要在 /etc/sysctl.conf 文件中添加以下内容:

1
vm.swappiness=40

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