如何更改 SageMaker Docker 容器的共享内存?

How to alter shared memory for SageMaker Docker containers?

我在 Elastic Container Registry (ECR) 中有一个 Docker 图像。它是通过一个我可以控制的简单 Docker 文件创建的。

图像本身没问题,但我遇到了一个问题,即在 SageMaker Studio 的容器内工作时共享内存不足。因此我需要提高这些容器的共享内存。

要提高容器的共享内存,我相信通常的方法是在启动容器时将--shm-size参数传递给docker run命令。但是,我无法控制此命令,因为 SageMaker 正在为我做这件事。 docs 说 SageMaker 在启动容器时是 运行 docker run <image> train

是否可以解决此问题?通过某种方式为命令提供额外的参数,或者在创建 Docker 图像时指定一些东西(例如在 Docker 文件中,ECR 的部署脚本)。

根据 this 问题,目前没有您可以在 sagemaker 中使用的选项。如果 ECS 是您的一个选项,它确实支持任务定义中的 --shm-size 选项。

正如@rok 所指出的(谢谢!)在这种情况下不可能将参数传递给 docker run,尽管如果切换到 ECS 则可以。

然而,在构建映像以推送到 ECR 时,可以将 --shm-size 参数传递给 docker build。这似乎已经解决了问题,尽管它确实需要在想要更改此参数时构建和推送新的 Docker 图像。