介绍

swap 可以理解为 linux 下的虚拟内存,是从硬盘中划分出的一个分区。开启之后,当物理内存不够用的时候,内核就会释放缓存区(buffers/cache)里一些长时间不用的程序,然后将这些程序临时放到 Swap 中,也就是说如果物理内存和缓存区内存不够用的时候,才会用到 swap。

检查是否开启 swap

​free -m​

swap 那一行的 total 返回为 0 表示没有开启 swap。

创建 swap

#首先分配1g的空间大小的文件
fallocate -l 1G /swapfile

#如果提示fallocate: command not found
#则可以再执行命令:apt install util-linux

#设置只有拥有者有读写权限
chmod 600 /swapfile

#启动swap区
mkswap /swapfile
swapon /swapfile

检查是否开启成功

可以使用命令查看

​free -m​

而且磁盘空间也已经占用了 1g。(在执行 fallocate 分配命令之后,就会占用了)

设置开机自启动

​echo "/swapfile swap swap defaults 0 0" >> /etc/fstab​

调整 Swappiness 值

swap 作为虚拟内存,毕竟用的还是磁盘的性能,怎么样也比不上真实的内存,所以咱们都应该尽量使用真实内存。
只有真实内存实在不够时才应该使用虚拟内存。此时就需要设置 Swappiness 值。
Swapiness 的值在 0 到 100 之间 (默认是 60),越低表示越要避免交换,越高表示越积极地使用交换空间。

我们可以使用 cat /proc/sys/vm/swappiness​ 命令查看当前值。

可以设置 Swappiness 值为 10

#设置swappiness值
echo "vm.swappiness=10" >> /etc/sysctl.conf
#使配置生效
sysctl -p

如果只是要设置 swap,那教程到这里就结束了。接下来我们继续讲解关闭 swap

关闭 swap

如果需要关闭 swap,则将之前的操作反向即可。但是步骤的顺序还是得遵循一下的

#首先关闭swap区
swapoff /swapfile

其次找到启动 swap 时设置的开机自启的配置,并删除

#也就是找到/etc/fstab,然后删除 /swapfile swap swap defaults 0 0
#通过该命令编辑器,可以进入编辑界面,删除上面指定内容
vim /etc/fstab

最后删除分配的文件

​rm -rf /swapfile​