11

我已经看到“热身”EC2 以克服首次写入惩罚的建议:-

预热数据分区 - 在 EC2 中使用磁盘 IO 有一个缺点:最初写入新分区时会影响“首次写入”性能。为了避免这种惩罚,您可以通过执行一种访问它的一次性命令来“预热”该分区。例如,您可以使用 Linux dd 命令写入磁盘。虽然惩罚仍然存在并且无法避免,但至少第一次写入数据库不会受到影响。

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

...但我还没有找到任何关于最佳实践的进一步建议!EBS 存储是否如此?谁能推荐将执行此预热的“dd”语法以及如何确保所有块都“预热”?

4

2 回答 2

15

感谢您指向 AWS 论坛。在此处发布后,我确实在此处发布了问题,并收到了 Jason@AWS 的回复。线程在这里: -

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

...他的回答是:-

从快照创建的 EBS 卷存在首次读取损失,因为该卷在所有块成功加载之前可用。您可以通过强制读取卷上的每个块来消除此惩罚:

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

于 2010-10-15T11:22:28.677 回答
4

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

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

于 2014-02-18T18:12:05.530 回答