EBS 的实际失败率 - PlanetScale

主要观点:PlanetScale 在全球部署了数百万 Amazon Elastic Block Store (EBS) 卷,每天创建和销毁数万个,对 EBS 的故障率和机制有独特见解并致力于减轻。复杂系统中失败非二进制,部分失败会导致性能下降等问题。
关键信息

  • EBS 卷常出现“慢”即性能下降情况,如从稳定运行突然写入延迟飙升、读写阻塞,这对应用和用户来说是失败。
  • AWS 文档称 EBS 卷一年 1%时间可能达不到预期性能,实际经验中这种情况较频繁,短时间窗口也会影响实时工作负载,生产系统难以应对。
  • PlanetScale 每天都能看到类似失败,每次故障持续 1 - 10 分钟,在大型数据库中故障会叠加,即使使用 io2 卷也难以避免,且常出现单个区域内的相关故障。
    重要细节
  • 如某 EBS 卷稳定运行 10 小时后写入延迟突然飙升,从预期的单位数 ms/操作变为 200 - 500ms/操作,空闲时间为 0 导致读写阻塞。
  • 假设每个性能下降事件随机且性能降低在 1% - 89%之间,应用能承受 50%吞吐量损失,每个月每个卷约有 43 次事件,至少 21 次导致停机。
  • 在 256 分片数据库中,每个分片有一主两副本共 768 个 EBS 卷,任何时候都有 99.65%的概率至少有一个节点出现影响生产的事件。
  • PlanetScale 通过监测指标和开发基本测试快速响应性能问题,检测到 EBS 卷退化时可在几秒内进行零停机重新分配到集群中的另一个节点并自动启动替换卷,这减少了人工干预和用户察觉时间。这也是推出 PlanetScale Metal 的原因,其共享无状态架构使用本地存储避免了 EBS 网络附加存储的问题。
阅读 11
0 条评论