Swap分区设置

一、Swap 分区介绍

Swap 分区是什么?Linux 中 Swap,类似于 Windows 的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。

Swap 分区的作用是什么?它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行

二、创建 Swap 分区步骤

我们可以用以下命令查看

free -m

如下图所示,Mem 表示内存大小(ram),Swap 则表示交换分区大小:

如果我们 Swap 分区设置的不合理(太小),并且VPS本身的物理内存也不够用,那么就会出现 Linux Swap 占用很高,甚至 Swap 分区全部占满的情况,一般来说,根据 Linux 内存的大小不同,我们可以按照下面的对应关系设置:

  1. 创建一个空文件。

其中/swapfile是文件位置,bs*count是文件大小,例如以下命令就会创建一个1G的文件:

dd if=/dev/zero of=/swapfile bs=1M count=1024
  1. 把文件设置为交换区
mkswap /swapfile
  1. 启用Swap分区
swapon /swapfile

如果提示 insecure permissions 0644, 0600 suggested. 要设置该文件的权限为600

chmod 600 /swapfile

再次查看 free -m此时分配好的 Swap 已经启用了

  1. 设置系统启动时自动开启 Swap
vim /etc/fstab

在 fstab 文件最后一行添加下面的内容

/swapfile none swap sw 0 0
  1. 卸载 Swap
swapoff /swapfile
  1. 设置 swappiness 的值

swappiness 的值的大小对如何使用 Swap 分区是有着很大的联系的。swappiness=0 的时候表示最大限度使用物理内存,然后才是 Swap空间,swappiness=100 的时候表示积极的使用 Swap 分区,并且把内存上的数据及时的搬运到 Swap 空间里面。

查看 swappiness

cat /proc/sys/vm/swappiness

临时修改

sysctl vm.swappiness=10

永久修改

vim /etc/sysctl.conf

添加 vm.swappiness=10 然后保存就可以了。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!