Linux添加swap及修改swappiness参数

发布于 2020-07-30  2.73k 次阅读


在Linux内存不够的时候,swap是个好东西,他能够将一部分暂时不需要的内存暂时转移到硬盘中,这跟Windows下的虚拟内存是一个道理,swappiness则是Linux下控制swap使用积极程度的一个参数,下面会具体讲到。本文就来讲讲Linux下如何添加swap以及swappiness参数的修改。

在Linux中,可以通过free -m查看当前的内存的使用情况,得到类似如下结果:

              total        used        free      shared  buff/cache   available
Mem:           1826         146        1338           1         342        1537
Swap:             0           0           0

其中的Swap就是当前的Swap使用情况,这里暂时没有Swap所以是0。

添加swap

1.切换root用户

sudo su

2.使用dd命令创建一个分区

dd if=/dev/zero of=/home/swap bs=1M count=1024

得到如下结果:

1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 6.20705 s, 173 MB/s

命令里面的count是指大小,单位是M,这里以1G为例,1G=1024M,所以count=1024

Swap的大小可根据实际情况进行调整,一般情况下如果本身内存小于2G,则Swap建议大小为内存的2倍,如果大于2G小于8G,则Swap与自身内存大小相等,大于8G的话固定4G的Swap(以上说法来自RedHat),当然具体多少根据实际情况而定。

3.修改权限

chmod 600 /home/swap

如果不修改权限的话接下来可能会报错insecure permissions 0644, 0600 suggested.

4.将分区转化为swap格式

mkswap /home/swap

结果如下:

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=2320a111-6a6f-42c5-acc4-57dff0e450ae

5.使swap生效

swapon /home/swap

6.将swap设置为 开机启用

修改/etc/fstab 文件,文件末尾加入如下信息:

/home/swap swap swap defaults 0 0

这一步如果不会的话可以自己搜索一下VI/VIM文件编辑器的用法,此处不细讲。

7.查看是否成功

reboot 重启,然后free -m 查看swap时候开启成功

如果已经成功则会得到类似如下结果:

              total        used        free      shared  buff/cache   available
Mem:           1826         120         475           1        1230        1562
Swap:          1023           0        1023

8.假如不成功,删除/home/swap分区,重新开始

修改swappiness参数

swappiness参数主要用于调整系统使用swap的积极程度,大小为0-100,数字越大代表swap的使用越积极。假如swappiness的值为60,意味着系统在剩余物理内存低于40%(40=100-60)时开始使用swap,不同的系统默认的swappiness值不同,可以通过cat /proc/sys/vm/swappiness 查看当前的swappiness。

如果需要临时修改swappiness参数,可以使用sysctl vm.swappiness=10 将swappiness修改为想要的数值(此处为10),重启后失效。

假如需要永久修改,则需在/etc/sysctl.conf 添加如下参数(此处修改为10):

vm.swappiness=10

同样如果这一步不会的话可自行搜索VI/VIM等文本编辑器的用法 。

修改完成后使用sysctl -p 命令激活设置或重启即可。

End.

 

 


车到山前必有路,船到桥头自然直。