gpt4 book ai didi

linux - 为 Docker 容器中的子进程调整 OOM killer

转载 作者:太空狗 更新时间:2023-10-29 11:17:27 24 4
gpt4 key购买 nike

请帮助找到合适的解决方案。

有一个在Ubuntu环境中运行的java服务,它周期性地调用带参数的外部进程(同一个程序的多个实例)。一切都被打包到 Docker 容器中(设置了内存限制,非特权,只读,除了 tmp 和日志,cap_drop all)。有时,提供给子进程的数据会使其超出内存限制。因此,在这种情况下,我们希望由于 OOM 而终止子进程,但让父 (java) 进程继续运行。

如果谈到非 docker 系统,有一组方法可以实现这一点,如:创建自定义 cgroup,设置内存限制并为其附加子进程。另一种方法是调整/proc/PID/oom_adj 设置,使子进程具有更大的 oom_score。

但是在 docker 容器中,我找不到一种简单的方法来完成它,而不是以特权模式运行容器并向主进程添加外部包装器。

有没有原生的方式在容器内添加内存cgroup或者调整OOM killer?

提前致谢!

最佳答案

唯一的方法是使用 --oom-score-adj 选项到 docker run 甚至 --oom-kill-disable.

https://docs.docker.com/engine/reference/run/#runtime-constraints-on-resources

关于linux - 为 Docker 容器中的子进程调整 OOM killer ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44393107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com