Linux环境下swap配置方法

前言

安装Linux系统之后,默认是没有swap分区,那么我们怎样增加和删除swap分区。

配置swap步骤

1) 内存占用情况

1
free -h

Swap: 0B 0B 0B

2) 通过dd命令增加swap,增加一个2g的swap空间

1
dd if=/dev/zero of=/var/swap bs=1024 count=2048000

成功提示

2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 17.6327 s, 119 MB/s

3) 创建swap文件

1
mkswap -f /var/swap

成功提示

Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=77bddc86-9f1c-4685-aefb-048c07b8f803

4) 加载该文件:

1
swapon /var/swap

成功提示

swapon: /var/swap: insecure permissions 0644, 0600 suggested.

5) 看看swap是否生效

1
free -h

成功提示

Swap: 2.0G 0B 2.0G

或者

1
swapon  -s

6) 查看swap当前状态:

1
cat /proc/swaps

成功提示

Filename Type Size Used Priority
/var/swap file 2047996 0 -2

7) 添加至/etc/fstab

1
vim /etc/fstab

在文本的最后添加

1
/var/swap swap swap defaults 0 0

8) 如果不再需要swap,可以清理该分区:

1
swapoff /var/swap

swap 什么时候使用

在Linux里面,swappiness的值的大小对如何使用swap分区是有着很大的联系的。

  • swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间

  • swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面

两个极端,对于 CentOS默认为0,Ubuntu的默认为60,建议修改为10。

具体这样做:

1) 查看你的系统里面的swappiness

1
cat /proc/sys/vm/swappiness

不出意外的话,你应该看到是0

2) 修改swappiness值为10

1
sudo sysctl vm.swappiness=10

但是这只是临时性的修改,在你重启系统后会恢复默认的值,所以,还要做一步:

1
vi /etc/sysctl.conf

在这个文档的最后加上这样一行:

1
vm.swappiness = 10

然后保存,这样重启之后配置也不会失效。