我观察到 EC2 实例上的一些行为,我认为这是由于磁盘缓存造成的。基本上:我有一个计算任务需要顺序访问大量数据(约 60 个 1GB 文件)。我已将这些文件包含在我的亚马逊图片中。我还使用 mpi 启动约 30 个进程来同时访问不同的文件。顺便说一句,该程序受计算限制,但磁盘 IO 需要相当大的运行时间。我注意到,当我启动实例并在第一次尝试时执行计算时,速度非常慢。top 命令将显示进程不时挂起,cpu 使用率约为 60%。但是,一旦该运行完成,如果我开始另一次运行,它会快得多,并且 cpu 大约是 99%。那是因为我的数据仍在网络驱动器 (EBS) 上并且自动加载到本地实例磁盘缓存(SSD 驱动器?)?我在 C5n.18xlarge 上运行它,但它仅被列为 EBS。有没有人有类似的经历?还是其他解释?
问问题
25 次
1 回答
1
它几乎可以肯定是磁盘缓存,但在 RAM 中,而不是本地 SSD。
c5.18xl 实例类型具有 192 GB 的 RAM。因此,根据您对该 RAM 所做的其他操作,您的 60 GB 数据文件完全有可能被读入缓存并且从未离开过。
欲了解更多信息:https ://www.tldp.org/LDP/sag/html/buffer-cache.html
于 2018-12-27T18:22:57.227 回答