Google compute engine 扳手负载性能非常低

Google compute engine 扳手负载性能非常低,google-compute-engine,google-cloud-dataflow,apache-beam,google-cloud-spanner,Google Compute Engine,Google Cloud Dataflow,Apache Beam,Google Cloud Spanner,我正在尝试使用数据流在扳手中写入TBs数据 扳手实例配置了足够多的节点,数据流在n1-standard-16机器上运行 这项工作进展得很慢。在整个过程中,扳手CPU的利用率一直处于限制范围内,写入延迟也非常小(以毫秒为单位)。基本上一切都在掌控之中。没有在此实例上同时执行其他读/写操作 负载可能有大约一百万条记录,这些记录可能与扳手中的某些记录具有相同的密钥。我使用InsertBuilder来避免在扳手中写入这样的行。这是否是性能低下的主要原因?我还将writeFailureMode()用作“报

我正在尝试使用数据流在扳手中写入TBs数据

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

这项工作进展得很慢。在整个过程中,扳手CPU的利用率一直处于限制范围内,写入延迟也非常小(以毫秒为单位)。基本上一切都在掌控之中。没有在此实例上同时执行其他读/写操作


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

误差来自光束。SpanRio尝试将多个突变组批处理在一起,以便更有效地向Cloud Spaner写入数据。但是,如果一个突变组已经存在一个密钥,则不能完整地写入该批。取而代之的是,每个变异组都被单独尝试,以成功地写入每个没有重复密钥的变异组。由于在这种情况下,批处理大小实际上变为一,因此插入性能将降低。

错误来自Beam。SpanRio尝试将多个突变组批处理在一起,以便更有效地向Cloud Spaner写入数据。但是,如果一个突变组已经存在一个密钥,则不能完整地写入该批。取而代之的是,每个变异组都被单独尝试,以成功地写入每个没有重复密钥的变异组。因为在这种情况下,批大小实际上变为一,所以插入性能将降低