如何更改 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 图像。
我在 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 图像。