如何关闭 docker 的 swap 内存

内容目录

阿里云的服务频繁宕机,和工作人员核实后发现是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 系统。

  1. 打开 crontab 配置文件:
    sudo crontab -e
    可选择 nano 编辑器

  2. 在文件中添加如下行,使用 @reboot 来在系统启动时执行 swapoff -a:
    @reboot /sbin/swapoff -a

  3. 保存并退出。

这个方法也是比较简单的,并且适用于大多数系统。

浏览量(103) | 此条目发表在计算机分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理