在Docker容器中调整子进程的OOM killer

4
请帮忙寻找合适的解决方案。
在Ubuntu环境中运行了一个Java服务,定期使用参数(相同程序的多个实例)调用外部进程。所有内容都打包进Docker容器中(内存限制已设置,非特权模式,除tmp和logs以外只读,cap_drop全部)。有时提供给子进程的数据会使其超出内存限制。因此,在这种情况下,我们希望杀死子进程,但保留父进程(Java)的运行。
如果谈到非Docker系统,则有一组方法可以实现此目的,例如:创建自定义cgroup,设置内存限制并将子进程附加到其上。另一种方式是调整/proc/PID/oom_adj设置,使子进程具有更大的oom_score。
但在Docker容器中,我无法找到简单的方法来实现它,而不必以特权模式运行容器并为主进程添加外部包装器。
是否有本地方法在容器内添加内存cgroup或调整OOM killer?
提前感谢!
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接