在EC2 p2.xlarge实例上运行启用了GPU的docker容器时,在容器开始运行之前,我遇到了30到90秒的延迟。后续容器快速启动(延迟1秒)。
我正在使用最新的官方CUDA镜像进行测试: docker run --rm nvidia/cuda nvidia-smi
在我的机器上启用了Persinstence模式。正如在https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#how-do-i-install-the-nvidia-driver中“为什么我的容器从2.0开始很慢?”这应该是解决方案,但对我不起作用。
任何可能导致延迟的原因以及如何修复它的想法都是值得感谢的。
发布于 2018-09-05 04:50:53
我在评论中看到你已经从互联网上删除了Docker镜像,但你确定该镜像没有保存到EBS快照中吗?例如,在使用NVIDIA Docker创建AMI期间,您可能已经拉出该映像并将其保存到根AMI卷。
如果是这种情况,则由于EBS卷是如何从快照恢复的,所以会出现这种延迟。
来自亚马逊网络服务文档(Initializing Amazon EBS Volumes):
...从快照恢复的卷上的存储块必须先初始化(从亚马逊S3下载并写入卷),然后才能访问这些块。此预备操作需要时间,并且会导致第一次访问每个数据块时I/O操作的等待时间显著增加。
因此,当您第一次运行Docker容器时,亚马逊网络服务会将数据从S3下载到您的EBS卷,这需要一些时间。第二次启动容器时速度很快,因为数据已经在卷上了。
https://stackoverflow.com/questions/52115145
复制相似问题