如何“预热”EC2 / EBS存储?

时间:2010-10-11 08:38:30

标签: amazon-ec2 amazon-ebs

我已经看到建议“预热”EC2以克服第一次写入惩罚: -

  

预热数据分区 - 有一个   在EC2中使用磁盘IO的缺点:a   “第一次写”性能何时达到   最初写入新分区。   为了避免这种惩罚,你可以“温暖   通过执行排序来“分区”   访问的丢弃命令   它。例如,您可以使用Linux   dd命令写入磁盘。而   罚款仍然发生,不可能   避免,至少第一次写   你的数据库不会受到影响   的效果。

来源:http://answers.oreilly.com/topic/1345-getting-the-most-out-of-mysql-in-the-amazon-cloud/

...但我还没有找到有关最佳做法的进一步建议! EBS存储是真的吗?任何人都可以推荐执行此预热的'dd'语法,以及如何确保所有块都“加热”?

2 个答案:

答案 0 :(得分:14)

感谢指向AWS论坛的指针。我在帖子发布后发布了这个问题,并收到了Jason @ AWS的回复。线程在这里: -

http://developer.amazonwebservices.com/connect/message.jspa?messageID=198413#198413

......他的回答是: -

  

有一个首读惩罚   从快照创建的EBS卷,如   该卷之前可用   所有的街区都是   成功加载。你可以否定   通过强制每个块来惩罚这个惩罚   要读的音量:

     

$ dd if=/dev/<device> of=/dev/null

答案 1 :(得分:4)

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-prewarm.html表示可以通过读取整个磁盘来预热快照卷;这加快了读取速度。快照和非快照卷可以通过写入整个磁盘来预热写入。

  

创建新EBS卷或从快照还原卷时,会立即为您分配后端存储块。但是,第一次访问存储块时,必须先将其擦除(对于新卷)或从其快照(对于已还原的卷)进行实例化,然后才能访问该块。此初步操作需要一些时间,并且每次访问每个块时都会导致卷的IOPS损失5到50%。