了解性能

本页面介绍了 Bigtable 在最佳条件下可提供的大致性能、可能会影响性能的因素,以及测试和排查 Bigtable 性能问题的提示。

典型工作负载下的性能

Bigtable 可提供高度可预测的线性扩缩性能。如果您避免了本页面所述的性能下降的原因,则每个 Bigtable 节点都可提供以下大致吞吐量,具体取决于集群使用的存储空间类型:

存储层级 读取   写入   扫描
内存中层(预览版 每秒最多 12 万行1 每秒最多 10,000 行2 不适用
SSD 每秒最多 17,000 行 每秒最多 14,000 行 最高 220 MBps
HDD 每秒最多 500 行 每秒最多 10000 行 最高 180 MBps
不常访问的存储空间 每秒最多 100 行 每秒最多 10000 行 最高 36 MBps

这些估算值假设每行包含 1 KB 的数据。

1 企业 Plus 版节点的读取吞吐量为每秒 4 万行,并且可以以 4 万行为增量垂直扩缩至每秒 12 万行。如需了解详情,请参阅内存中层

2 每秒向内存中层写入大量行可能会影响写入吞吐量。

一般来说,集群的性能会随着集群中节点数量的增加而线性提升。例如,如果您创建一个具有 10 个节点的 SSD 集群,则在未启用内存中层的情况下,该集群在典型的只读或只写工作负载下最多可以支持每秒 14 万行读取或写入。启用内存中层后,集群可以支持每秒高达 120 万行的读取吞吐量。

规划 Bigtable 容量

在规划 Bigtable 集群时,请确定您是想优化延迟时间还是吞吐量。例如,对于批量数据处理作业,您可能更关心吞吐量,而不太关心延迟时间。相比之下,对于处理用户请求的在线服务,您可能需要优先考虑较短的延迟时间,而不是吞吐量。当您优化吞吐量时,可以实现典型工作负载下的性能部分中的数字。

内存中层

启用内存中层后,每个节点每秒可处理 4 万行。以横向方式添加节点可增加集群总容量。此外,每个节点还可以纵向扩缩,最高可达每秒 12 万行,以支持内存读取吞吐量。当达到纵向伸缩限制时,Bigtable 自动伸缩功能会添加更多节点以进行横向伸缩。采用手动伸缩的集群支持内存中纵向伸缩,直至达到吞吐量容量上限。 超出每秒 4 万行的纵向伸缩按节点的小时费用乘以相应倍数计费。如需了解详情,请参阅价格

每个内存中节点都包含 8 GB 的存储容量。虽然吞吐量可以纵向扩缩,但每个节点的存储空间容量保持不变。不过,横向伸缩会为每个新节点额外添加 8 GB 内存。由于存储空间在纵向伸缩期间不会增加,因此当节点纵向伸缩其内存中吞吐量时,工作负载的未命中率可能会上升。

CPU 利用率

在几乎所有情况下,我们都建议您使用自动扩缩功能,以便 Bigtable 根据使用情况添加或移除节点。如需了解详情,请参阅自动扩缩