jua*_*011 6 memory-limit docker
给定一个已启动的具有内存限制的Docker 容器,我想知道是否可以检测到何时强制实施该内存限制,从而使该容器即将崩溃,因为它的内存不足。是否有一些我可以捕获的信号?或者我可以轮询一些日志文件?事后检测到这一点,即使延迟几分钟仍然有用
如果 docker 由于内存限制而终止了您的容器,您将看到:
docker inspect --format '{{.State.OOMKilled}}' ${container_id}
Run Code Online (Sandbox Code Playgroud)
设置为 true。
请注意,如果操作系统在容器内运行的进程达到 Docker 内存限制之前将其终止,您将看到的只是应用程序收到的 SIGKILL。
您可以主动监视docker stats容器,看看它是否接近此处其他答案所述的限制。
您可以近乎实时地监控docker events任何因 OOM 而被终止的容器:
docker events --filter type=container --filter event=oom
Run Code Online (Sandbox Code Playgroud)
您可以调整上述事件命令来监视特定容器或受到时间限制。有关可用标志,请参阅文档。
监控此情况的一种方法是使用docker stats命令。即使在强制执行限制之前,您也可以监控容器的使用情况。
https://docs.docker.com/config/containers/runmetrics/#docker-stats
docker stats container1 container2
Run Code Online (Sandbox Code Playgroud)
您也可以执行一些 bash 脚本:
另一种选择是查看docker events:
https://www.systutorials.com/docs/linux/man/1-docker-events/
Docker 容器将报告以下事件:
attach, commit, copy, create, destroy, detach, die, exec_create, exec_detach, exec_start, export, kill, oom, pause, rename, resize, restart, start, stop, top, unpause, update
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4572 次 |
| 最近记录: |