0

在 EC2 p2.xlarge 实例上运行启用 GPU 的 docker 容器时,我在容器开始运行之前遇到了 30 到 90 秒的延迟。后续容器快速启动(延迟 1 秒)。

EC2 运行 ubuntu 18.04,NVIDIA 驱动程序版本 396.54 和 nvidia-docker2(遵循官方安装指南:https ://github.com/NVIDIA/nvidia-docker )

我正在使用最新的官方 CUDA 映像进行测试: docker run --rm nvidia/cuda nvidia-smi

我的机器上启用了持久模式。如https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#how-do-i-install-the-nvidia-driver中所述, “为什么我的容器从 2.0 开始很慢? " 它应该是解决方案,但对我不起作用。

任何可能导致延迟以及如何解决它的想法都值得赞赏。

4

1 回答 1

0

我在评论中看到您已经从互联网上提取了 Docker 映像,但是您确定该映像没有保存到 EBS 快照中吗?例如,在使用 NVIDIA Docker 创建 AMI 期间,您可能已拉取该映像并将其保存到根 AMI 卷。

如果是这种情况,那么您会遇到此延迟,因为 EBS 卷是如何从快照中恢复的。

从 AWS 文档(初始化 Amazon EBS 卷):

...从快照恢复的卷上的存储块必须先初始化(从 Amazon S3 拉下并写入卷),然后您才能访问该块。此初步操作需要时间,并且可能导致第一次访问每个块时 I/O 操作的延迟显着增加。

因此,当您第一次运行 Docker 容器时,AWS 正在将数据从 S3 下载到您的 EBS 卷,这需要一些时间。第二次您的容器快速启动,因为数据已经在卷上。

于 2018-09-04T20:50:53.263 回答