写在开头
内存不够的时候,数据库、应用程序总无法预料在某个时刻就突然宕掉了,让我们用swap来解决内存不足的痛。
正式开始
首先登录到服务器,然后切换到root账户下(如不切换请确定当前用户拥有sudo权限)
- 查看服务器是否已经开启了swap,如果有了就不要继续了
cat /proc/swaps
- 创建/data目录
mkdir /data
- 设置swap分区大小,并指定swap文件
dd if=/dev/zero of=/data/swap bs=512 count=8388616
此文件的大小是count的大小乘以bs大小,上面命令的大小是4294971392,即4GB
- 将/data/swap文件做成swap分区
mkswap /data/swap
- 查看内核参数vm.swappiness的值,如果为0就改成30或60
cat /proc/sys/vm/swappiness
vim /etc/sysctl.conf
vm.swappiness = 60
- 使内核参数立即生效
sysctl -p
- 启用分区
swapon /data/swap
如果不进行mkswap这一步,在启用分区的时候会报错“swapon: /data/swap: read swap header failed: Invalid argument”
- 查看swap分区是否设置成功
swapon -s
- 自动挂在swap分区
echo "/data/swap swap swap defaults 0 0" >> /etc/fstab
如果不想要了,可以关闭swap分区
swapoff /data/swap
swapoff -a >/dev/null
写在结尾
内存不够最有效的方法就是加内存,但贫穷限制了我的想象力,只能通过swap分区来满足所需了。所以内存不够,又没钱加内存的时候,就开启swap分区吧。