小内存服务器(eg:2g内存)如果不设置swap,是极其容易死机的,一旦死机大多能解决办法只是重装系统,给我们带来了麻烦,故设置swap是非常有必要的。有些服务器购买后就设置有swap,比如腾讯云。
下面是设置swap的步骤,请依次执行
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo bash -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'然后查看:
free -h你会看到多出 2 GB swap,这样系统就不会轻易死机。
大多数人认为到这就结束了,但我这篇文章要讲的痛点就在后面。系统确实已经有swap,但是Linux 有个参数控制何时使用 swap,可以使用下面这行代码查看
cat /proc/sys/vm/swappiness如果输出是 10 或者 1,说明系统几乎不用 swap。如果是0就代表不使用,而博主这台服务器就是如此。那么改成多少合适呢,怎么改?
sudo sysctl vm.swappiness=60这样是临时修改,重启后就会变回原来的值(不推荐)
推荐下面这种永久修改的方法
1.修改/etc/sysctl.conf
sudo vim /etc/sysctl.conf2.添加或修改一行
vm.swappiness=603.生效
sudo sysctl -p