更换根卷后AWS EC2机器非常慢

Alp*_*aaa 3 amazon-ec2 amazon-web-services

我有一台工作正常的生产机器(c4.2xlarge)。但是,当我执行以下操作时:

  1. 在机器运行时拍摄根卷的快照(我知道,建议不要这样做,但这对我来说效果很好)
  2. 从快照创建卷
  3. 将新创建的卷作为根设备 (/dev/sda1) 连接到预生产计算机 (c4.xlarge)
  4. 启动预生产机器

新启动的机器一开始反应很慢。当我继续在机器上工作时,速度开始提高,直到几个小时后,它的响应速度就像我更换其根卷之前一样。

为什么会发生这种情况?

直观上,这似乎是一个缓存问题,就好像机器需要“预热”才能按预期执行一样。但这对我来说并没有什么意义,因为我所做的只是替换机器的根卷。

Tim*_*Tim 5

EBS快照存储在S3上。当您从快照创建新的 EBS 卷时,数据会根据需要从 S3 流式传输到 EBS。我怀疑它也可能会降低整个体积,但这可能需要一些时间,这就是为什么它会优先考虑您现在需要的块。

要解决此问题,请预热音量。完整的过程在这里,但我将在这篇文章中概述要点

  1. 使用 lsblk 命令列出实例上的块设备。找到新设备(此处以粗体显示)

[ec2-user ~]$ lsblk
NAME  MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
**xvdf**  202:80   0  30G  0 disk
xvda1 202:1    0   8G  0 disk /
Run Code Online (Sandbox Code Playgroud)
  1. 使用 dd 或 fio 实用程序读取设备上的所有块。

[ec2-user ~]$ sudo dd if=/dev/**xvdf** of=/dev/null bs=1M
Run Code Online (Sandbox Code Playgroud)

请注意,新的 EBS 卷不需要预热,因为 S3 上没有存储任何内容。

注意:需要额外的点才能使格式正常工作。