Docker 容器是否共享一个 Python GIL?

Kin*_*gua 5 python virtualization containers python-3.x docker

当我在 Docker 容器中运行 Python 脚本时,它会在大约 1 分钟内完成一个执行循环。现在,当我从同一个映像中再启动 2 个容器,并在其中运行 Python 脚本时,一切都变慢了,开始每个循环需要 5-6 分钟。

没有一个脚本是资源绑定的;有大量 RAM 和 CPU 内核闲置。在 64 核 Xeon Phi 系统上运行 3 个容器时会发生这种情况。

那么 Docker 是否在所有容器之间共享一个通用的 Python GIL 锁?分离 GIL 的选项有哪些,以便每个进程都能以最大速度运行?

谢谢!

aaa*_*210 2

那么 Docker 是否在所有容器之间共享一个公共的 Python GIL 锁?

不。

GIL 是针对每个 Python 进程的,一个 Docker 容器可能有 1 个或多个 Python 进程,每个进程都有自己的 GIL。

如果您不是多线程,您甚至不应该知道 GIL。你到底在使用线程吗?