内容目录
阿里云的服务频繁宕机,和工作人员核实后发现是docker 开启了 swap 内存导致写入硬盘爆表。需要关闭 swap 内存,方法和验证方法如下:
关闭方法:在 docker-compose 中禁用 swap
在 docker-compose.yml 文件中添加配置mem_swappiness: 0
services:
your-service:
image: your-image
mem_swappiness: 0
临时禁用
`sudo swapoff -a`
验证是否成功
进入容器内部检查
docker exec -it 容器ID bash
cat /proc/meminfo | grep -i swap
如果 swap 已禁用,SwapTotal 和 SwapFree 的值应该为 0。
设置成开机启动
如果无法通过配置文件改,只能将sudo swapoff -a 设置成开机启动命令。使用 cron 来在系统启动时执行 swapoff -a。这种方法适用于几乎所有的 Linux 系统。
-
打开 crontab 配置文件:
sudo crontab -e
可选择 nano 编辑器 -
在文件中添加如下行,使用 @reboot 来在系统启动时执行 swapoff -a:
@reboot /sbin/swapoff -a -
保存并退出。
这个方法也是比较简单的,并且适用于大多数系统。
windows的cmd命令行,整理成可执…