我有一个EBS (弹性块存储)在AWS上,有大量的25 of文件(1000)。我想为每个文件计算一个SHA256和。
哪个EC2实例最适合这样的任务(cpu优化)?很多核心?存储优化?)。我能以某种方式并行散列这些文件吗?如何优化性能?
发布于 2020-08-13 05:24:08
您将在EBS吞吐量上苦苦挣扎。
较小的m5 / m5a /m6g实例具有高达4,750 Mbps EBS吞吐量 =约600 MB/s最大值。更大的实例,如m5.24xlarge,可以高达1.9万Mbps或2.4GB/S。但是,只有当您的EBS卷能够处理它时,(可能必须是IOPS优化的卷(io1类型)才能保持这种吞吐量。
这意味着您的25 GB数据(1000个文件x25GB)可以在3小时至12小时的理想条件下从EBS读取。在现实中,它可能会慢一些。那只是在读文件。
CPU并不重要--任何CPU都可以以这样的速度完成sha256,所以使用一种更便宜的体系结构,比如基于ARM的M6g,如果它附带了多个核心(例如带有4个CPU核的m6g.xlarge ),那么您可以并行散列4个文件。不过,由于EBS吞吐量瓶颈,这可能不会像您预期的那样减少4倍的时间。
我会购买m6g.4xlarge作为一个Spot实例,并期望它将需要一天的时间来散列文件。如果你的电子白银是在一个地区,M6g (ARM)是不可用的使用M5a (AMD) -它比M5 (英特尔)便宜,仍然强大的哈希。
希望有帮助:)
https://serverfault.com/questions/1029850
复制相似问题