用mkswap、swapon命令给系统增加swap分区
一. 简介
双11的时候剁了搬瓦工家2G内存的优惠套餐,本想着这下运行任何程序都没问题了吧,结果gitlab安装最低要求4G内存上来就给了一巴掌.
算了,还好之前有了解过swap,这里记录下使用方法.
二. swap设置多大
我们知道硬盘的读写速度是没有RAM高的,而swap就是用硬盘的空间和RAM做交换,太多的交换会影响机器性能.
所以swap虽好,也不能设置过大,那我们一般要设置多大呢?
下面是redhat的建议值
Amount of RAM in the system | Recommended swap space | Recommended swap space if allowing for hibernation |
---|---|---|
⩽ 2 GB | 2 times the amount of RAM | 3 times the amount of RAM |
> 2 GB – 8 GB | Equal to the amount of RAM | 2 times the amount of RAM |
> 8 GB – 64 GB | At least 4 GB | 1.5 times the amount of RAM |
> 64 GB | At least 4 GB | Hibernation not recommended |
具体的参考这儿
对于我们来讲,设置为内存大小的2倍吧,不多想.
三. 安装
swap空间可以是一个分区,也可以是一个文件,这里是/swap文件
# 关闭swap
swapoff /swap
# 创建4GB /swap文件
dd if=/dev/zero of=/swap bs=1M count=4096
# 将/swap文件变为swap
mkswap /swap
# 启动/swap
swapon /swap
重启后会发现swap不会自动生效,要启动时自动加载,执行下面
# 将/swap设置追加到/etc/fstab后面
echo "/swap swap swap defaults 0 0" >> /etc/fstab
四. 命令
查看当前swap
swapon -s
查看当前系统内存情况,也可以看到swap
free -m
五. swappiness
cat /proc/sys/vm/swappiness
- 默认值是60
- swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间
- swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
如果我们想尽可能的不使用swap,可以将这个值修改为0.
重启系统后这个值会被重置,要永久修改的话,在/etc/sysctl.conf文件里添加
# /etc/sysctl.conf
vm.swappiness=10
六. 结尾
好了,这些应该够折腾的了.
参考: