由于高优先级事务的CPU使用率较高,因此GCP Spanner中的记录丢失了

时间:2019-11-15 10:50:50

标签: python google-cloud-spanner

我们正尝试使用事务模式通过多线程和多处理在扳手表中插入100万行数据,以最大限度地利用Spanner。

我们使用了20个进程来并行运行,并且每个进程都具有带有max_workers = 20的线程池,并且还动态增加了节点数。 但是,当CPU利用率大于80%时,记录将丢失。

run_in_transaction函数用于在事务模式下插入数据。

有人遇到这个问题吗?

1 个答案:

答案 0 :(得分:0)

Cloud Spanner的性能高度依赖于工作负载,架构设计和数据集特征[1]。

由于读写的计算开销与数据集并行增长,因此数据集大小可能是CPU使用率过高的一个因素。因此,建议优化架构以应对工作量。

如果在插入行时正在运行备份,请暂时禁用它们并重新运行写入。

您可以在堆栈监视上设置通知,以在CPU使用率达到定义的阈值时发送警报。维持CPU优化的建议阈值为65%[2]。当使用量达到该水平时,添加更多节点以维持请求速率。 CPU使用率下降后,请删除节点,然后查看请求是否仍在下降。

[1] https://cloud.google.com/spanner/docs/schema-design [2] https://cloud.google.com/spanner/docs/instances