引入
最近服务器三天两头因为运行内存不足而崩溃,今天一查才发现执行 cat /proc/sys/vm/swappiness
值为 vm.swappiness = 0 这个值表示内核极度排斥 Swap,宁愿把内存压榨到极限(逼近 OOM)也不会主动把进程内存换出到磁盘。
这也就导致了我配置的 9GB Swap 形同虚设。
解决方案
# 1. 临时生效(立刻开始积极使用 Swap)
sudo sysctl vm.swappiness=60
# 2. 永久生效(重启后仍然保持)
echo 'vm.swappiness=60' | sudo tee /etc/sysctl.d/99-swappiness.conf若内存严重吃紧,可以设置到80
sudo sysctl vm.swappiness=80
echo 'vm.swappiness=80' | sudo tee /etc/sysctl.d/99-swappiness.conf若服务器没有创建 Swap 可更具以下命令创建(务必更具服务器实际情况决定 Swap 大小)
# 举个例子创建 2GB swap 文件
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 添加到 /etc/fstab 永久生效
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab现在就可以愉快的玩耍了,在资金紧张的情况下这就不用浪费资金在开一台服务器部署服务拉(~ ̄▽ ̄)~

默认评论
Halo系统提供的评论