管理运行多个 Docker 容器的机器上的内存

问题描述 投票:0回答:1

我们有一台 Debian 机器,在上面运行多个用于运行 python 脚本的 docker 容器。其中一些脚本使用了我们机器内存的很大一部分。甚至有时会发生进程使用过多内存并因 OOM 而崩溃的情况(我们必须重新编写脚本以使其使用更少的内存)。 这是由于我们的脚本处理大量数据。

我希望能够在运行的容器之间分配内存优先级。如果内存不足,基本上能够暂停正在运行的容器(优先级最高的容器除外)。我知道我可以分配软内存限制,但是当达到限制时容器将停止,从而使运行在内部的 python 脚本崩溃。如果容器达到一定的内存使用量,是否有一种智能方法可以自动暂停容器(而不是停止它)?当内存可用时,它会重新开始吗?

谢谢!

我们尝试使用 docker 容器的内存限制,但是当容器停止时,容器内运行的 python 脚本崩溃,所以这对我们来说有点问题。

python linux docker debian
1个回答
0
投票

您的问题本质上是如何在 Linux 系统上确定进程的优先级。 我假设每个容器都有自己的流程。

我不确定您使用的是 VPS 还是个人计算机,但这应该不重要。

在这种情况下,您可以使用nice命令。您可能需要重新启动容器,以便为它们提供自定义优先级。 如果您的进程已经在运行,您可以使用 renice 来更改优先级。

nice -n -10 container_process

较低的值具有较高的优先级。最高通常为 -20。

类似问题

更多示例

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.