编译安装libsodium总是被kill,256MB RAM的KVM内存确实有点小,反正买了,没办法,加SAWP吧
swapon --show
如果没有任何输出就意味着没有SWAP,可以通过下面这个命令来查看内存的情况
free -h
查看硬盘上的可用空间
df -h
/dev 就是我们的磁盘所在的分区,接下来创建一个SWAP文件,以设置2G为例
fallocate -l 2G /swapfile
验证一下是否创建成功
ls -lh /swapfile
如果返回-rw-r--r-- 1 root root 2.0G Nov 9 23:18 /swapfile便是正确的
接下来设置一下权限,确保只有root用户才能读写此空间
chmod 600 /swapfile
验证一下是否修改成功
ls -lh /swapfile
返回-rw------- 1 root root 2.0G Nov 9 23:18 /swapfile便意味着只有root用户才有读写权限
将创建的文件标记为SWAP分区
mkswap /swapfile
启用SWAP分区
swapon /swapfile
检查一下启动的情况
swapon --show
free -h
以上的设置在重启以后是不会自动生效的,需要设置一下,先将/etc/fstab文件备份一下
cp /etc/fstab /etc/fstab.bak
将SWAP设置的信息写入/etc/fstab文件
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
高级玩法:
通过调整swappiness参数来设定SWAP的使用频率,这是一个从0到100之间的数值,表示一个百分比,如果设置为0则意味着除非必须要用,否则不会占用SWAP,但是这不意味着这个值越大越好,因为即便是SSD,它的读写速度也没法跟RAM相比,所以速度会受影响,也就是能尽量的避免进程因内存不足而被kill掉,查看默认值
cat /proc/sys/vm/swappiness
可以看到默认的值是60,如果想要修改可以通过下面这个命令来修改(假设修改为10)
sysctl vm.swappiness=10
为了使重启后还能保持这个设置我们需要去/etc/sysctl.conf文件中添加如下一行
nano /etc/sysctl.conf #编辑文件
vm.swappiness=10 #将这一行添加到文件最后一行
然后保存退出就好了,这样就基本不会因内存爆炸kill进程了