在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.
Comments | 2 条评论
lz 博主
emm你这是啥系统的? 还有提醒下 ovz类型的机器不要试图增加swap ?
小朱 博主
@lz
这篇文章是在CentOS 7下测试的
Ubuntu也可以,理论上大部分的Linux都是可以的
说得对,ovz的机器就不要试图加Swap了