扳手负载性能非常低

问题描述 投票:0回答:1

我正在尝试使用Dataflow在Spanner中写入TB的数据。

扳手实例配置了足够的节点,并且数据流正在n1-standard-16机器上运行。

作业运行非常缓慢。 Spanner的CPU使用率一直都在限制范围之内,写入延迟也以毫秒为单位非常短。基本上,一切似乎都在掌控之中。不能同时对此实例执行其他任何读/写操作。

负载可能约为一百万条记录可能具有与Spanner中某些记录相同的密钥。我正在使用InsertBuilder来避免在Spanner中编写此类行。这可能是导致性能低下的主要原因吗?我还使用writeFailureMode()作为“报告失败”(不是“快速失败”)。因此,根据我的说法,“已经存在”应该不会对性能造成太大影响,但并不是很确定。

google-compute-engine google-cloud-dataflow apache-beam google-cloud-spanner
1个回答
2
投票

错误来自光束SpannerIO.java。 SpannerIO尝试将多个突变组一起批处理,以更有效地写入Cloud Spanner。但是,如果突变组具有已存在的密钥,则无法完整写入批处理。而是单独尝试每个突变组以成功写入每个没有重复密钥的突变组。由于在这种情况下批量大小实际上变为1,因此插入性能会降低。

© www.soinside.com 2019 - 2024. All rights reserved.