Docker 并行操作限制
Docker parallel operations limit
并行数有限制吗Dockerpush/pulls可以吗?
E.g. if you thread Docker pull / push commands such that they are
pulling/pushing different images at the same time what would be the
upper limit to the number of parallel push/pulls
或者
On one terminal you do docker pull ubuntu on another you do docker
pull httpd etc - what would be the limit Docker would support?
docker 守护程序 (dockerd) 有两个标志:
--max-concurrent-downloads int Set the max concurrent downloads for each pull
(default 3)
--max-concurrent-uploads int Set the max concurrent uploads for each push
(default 5)
上限可能取决于您允许进程打开的文件数 (ulimit -n
)。其他 docker 文件句柄会有一些开销,我希望每次推拉都会打开多个句柄,一个用于远程连接,另一个用于本地文件存储。
为了使这一问题更加复杂,每次推送和拉取图像都会打开多个连接,每层一个,最多达到并发限制。因此,如果您 运行 十几个并发拉动,则可能有 50-100 个潜在层要拉动。
虽然 docker 确实允许增加这些限制,但有一个实际限制,如果不是负面的 return 打开更多并发连接,您会看到 returns 减少。假设远程注册表的带宽是有限的,更多的连接将简单地分割带宽,并且 docker 本身将等到第一层完成后再开始解包该传输。此外,任何中止的 docker 拉取或推送都会丢失层的任何部分传输,因此您会增加需要使用更多并发连接重新传输的潜在数据。
默认限制非常适合开发环境,如果您发现需要调整它们,我建议在尝试找到最大并发会话数之前测量性能改进。
选项在配置文件中设置(Linux-基于OS它位于路径:/etc/docker/daemon.json和C:\ProgramData\docker\config\daemon.json Windows)
打开/etc/docker/daemon.json(如果不存在则创建)
添加值(push/pulls)并设置并行操作限制
{
"max-concurrent-uploads": 1,
"max-concurrent-downloads": 1
}
重启守护进程:sudo service docker restart
对于 Windows 和 WSL2 使用 Docker 的任何人:
您可以(并且应该)在“设置”选项卡上设置选项:
Docker for Windows Docker Engine settings
并行数有限制吗Dockerpush/pulls可以吗?
E.g. if you thread Docker pull / push commands such that they are pulling/pushing different images at the same time what would be the upper limit to the number of parallel push/pulls
或者
On one terminal you do docker pull ubuntu on another you do docker pull httpd etc - what would be the limit Docker would support?
docker 守护程序 (dockerd) 有两个标志:
--max-concurrent-downloads int Set the max concurrent downloads for each pull
(default 3)
--max-concurrent-uploads int Set the max concurrent uploads for each push
(default 5)
上限可能取决于您允许进程打开的文件数 (ulimit -n
)。其他 docker 文件句柄会有一些开销,我希望每次推拉都会打开多个句柄,一个用于远程连接,另一个用于本地文件存储。
为了使这一问题更加复杂,每次推送和拉取图像都会打开多个连接,每层一个,最多达到并发限制。因此,如果您 运行 十几个并发拉动,则可能有 50-100 个潜在层要拉动。
虽然 docker 确实允许增加这些限制,但有一个实际限制,如果不是负面的 return 打开更多并发连接,您会看到 returns 减少。假设远程注册表的带宽是有限的,更多的连接将简单地分割带宽,并且 docker 本身将等到第一层完成后再开始解包该传输。此外,任何中止的 docker 拉取或推送都会丢失层的任何部分传输,因此您会增加需要使用更多并发连接重新传输的潜在数据。
默认限制非常适合开发环境,如果您发现需要调整它们,我建议在尝试找到最大并发会话数之前测量性能改进。
选项在配置文件中设置(Linux-基于OS它位于路径:/etc/docker/daemon.json和C:\ProgramData\docker\config\daemon.json Windows)
打开/etc/docker/daemon.json(如果不存在则创建)
添加值(push/pulls)并设置并行操作限制
{
"max-concurrent-uploads": 1,
"max-concurrent-downloads": 1
}
重启守护进程:sudo service docker restart
对于 Windows 和 WSL2 使用 Docker 的任何人: 您可以(并且应该)在“设置”选项卡上设置选项:
Docker for Windows Docker Engine settings