我知道几周前更新了CDF服务(默认工作人员类型&附加的PD已更改),并明确表示它会使批处理作业变慢。然而,我们的工作表现已经下降,超出了他们实际满足我们业务需求的程度。例如,对于我们的其中一个工作,它从BigQuery中的表中读取约270万行,具有6个侧面输入(BQ表),进行一些简单的字符串转换,最后写入多个输出(3)到BigQuery。这个过去需要5-6分钟,现在需要15-20分钟的时间 - 无论我们有多少虚拟机在使用它。数据流性能问题
有什么我们可以做的,以获得速度回到我们以前看到的?
下面是一些统计:
- 从BQ表读取与2744897行(294MB)
- 6 BQ侧输入
- 3多输出到BQ,其中2个是2744897和其他1500行
- 在区亚太east1-b运行下面
- 时间包括工作池自旋向上和拆除
10个虚拟机(N1-STANDARD-2) 16分钟5秒 2015-04-22_19_42_20-4740106543213058308
10个虚拟机(N1-STANDARD-4) 17分11秒 2015 - 04-22_20_04_58-948224342106865432
10个虚拟机(N1-STANDARD-1) 18分钟44秒 2015-04-22_19_42_20-4740106543213058308
倍20倍的VM(N1-STANDARD-2) 22分钟53秒 2015-04-22_21_26_53-18171886778433479315
50倍的VM(N1-STANDARD-2) 17分26秒 2015-04 -22_21_51_37-16026777746175810525
100层的虚拟机(N1-STANDARD-2) 19分钟33秒 2015-04-22_22_32_13-9727928405932256127
我查看了其中一个作业的步骤执行日志,看起来大部分时间(大约9分钟)已用于将步骤已写入的数据导入BQ。我们将研究为什么这个导入过程变得如此缓慢。 – jkff
有没有一种解决方法,我可以使用,直到你找出为什么它变得如此缓慢? –
一位队友认为,缓慢可能是由于新SDK对待边界输入的方式发生了变化 - 请问您可以参考http://stackoverflow.com/questions/29718820/why-did-sideinput-method-从上下文转移到processcontext-in-dataflow-beta并检查它是否与您的工作相关? – jkff