EBS 的使用在什么时候成为瓶颈?

EBS 的使用在什么时候成为瓶颈?

我在 Amazon 上托管了一个网站,使用由 EBS 卷支持的 EC2 实例。周末流量激增,我扩大了实例,这很有帮助 - 我不再看到 CPU 使用率飙升至 100% 并且服务器变得无响应。

但是,我确实注意到磁盘读取率也很高(我想这是没办法的),我想知道,在什么时候我会看到某种故障,因为磁盘无法跟上?

从所附的屏幕截图中可以看出,周末时最大速度达到 80MB/分钟。有谁有 AWS 的使用经验,知道什么时候我必须转移到多个负载平衡实例,因为 EBS 会成为瓶颈?

EBS 使用情况图表

答案1

首先要记住的是,对你的 I/O 性能影响最大的是实例类型您正在使用的。

Instance Type   I/O Performance
-------------   ---------------
t1.micro        Low
m1.small        Moderate
m2.xlarge       Moderate
c1.medium       Moderate
m1.large        High
m1.xlarge       High
m2.2xlarge      High
m2.4xlarge      High
c1.xlarge       High
cc1.4xlarge     Very High (10 Gigabit Ethernet)
cc2.8xlarge     Very High (10 Gigabit Ethernet)
cg1.4xlarge     Very High (10 Gigabit Ethernet)

至于 EBS 卷和您将获得的性能,AWS 常见问题解答建议您对应用程序进行基准测试以了解预期结果:

问:我预计 Amazon EBS 卷的延迟和吞吐率会是怎样的?从 Amazon EC2 实例到 Amazon EBS 卷的延迟与您从本地 Amazon EC2 实例存储驱动器看​​到的延迟类似。I/O 速率可能会因请求的大小、访问模式的随机性以及应用程序使用的缓存策略而有很大差异。因此,最准确的衡量标准是在 Amazon EBS 卷上对您的特定应用程序进行基准测试。

这意味着您获得的 EBS 速率不一定比本地实例存储更差或更好;它实际上取决于您的数据访问行为。

更多信息请访问AWS EBS 页面

Amazon EBS 卷性能

对于在数据集中执行大量随机访问的应用程序,Amazon EBS 卷旨在提供比 Amazon EC2 实例存储更高的吞吐量。您还可以将多个卷附加到一个实例,并在这些卷之间进行条带化,以进一步提高吞吐量。

确切的性能取决于应用程序(例如随机 I/O 与顺序 I/O 或大请求大小与小请求大小),因此最佳衡量标准是针对卷对您的实际应用程序进行基准测试。由于 Amazon EBS 卷需要网络访问,因此您将在更大的实例中看到更快、更一致的吞吐量性能。

还要记住,I/O 性能不仅包括磁盘 IO,还包括网络流量......因此,实例获得的网络流量越多,获得的磁盘 IO 就越少。

根据您所提供的服务,如果您的应用程序类型可以实现内存中的对象缓存,那么这可能会有很大帮助。

此外,这里有一些博客文章对各种 RAID 配置中的 EBS 和本地(临时)卷的性能进行了基准测试,并进行了调整以获得良好的 IO 性能:

EC2 临时磁盘与 RAID 中的 EBS 卷

Amazon EC2 I/O 性能:本地临时磁盘与 RAID 0 条带 EBS 卷

从 Amazon 的 EBS 获取良好的 IO

相关内容