您如何确定在Google Dataflow流媒体管道中配置多少资源?

时间:2017-08-10 18:37:21

标签: google-cloud-dataflow apache-beam

我很好奇如何决定如何为在Google的Dataflow平台上运行的Apache Beam管道配置资源。我构建了一个流管道(Beam Java 2.0.0),它接受一个PubSub JSON字符串,将其转换为BQ TableRow,然后将其路由到正确的表。管道内还有两个变换,一个每分钟有一个5分钟的滑动窗口,另一个窗口有一个固定持续时间为1分钟。

对于某些上下文,每个传入消息大约是1KB JSON字符串,并且在极端峰值时,管道将在一秒钟内接收250,000条消息。我的滑动时间窗口可能会在关闭之前增长到5,000,000,000个/分钟(最糟糕的情况,但那是我们正在计划的)。我们典型的峰值流量使用量约为75k /秒。但是,90%的时间我们的管道只处理30条消息/秒。

我们在启用了自动调节功能的情况下运行数据流,默认情况下,Google会为流媒体管道提供4个CPU,15GB和420gb * max_number的工作人员。设置了10个最大工作人员,我们将每月支付4.2TB磁盘使用费。这似乎有点矫枉过正,但我​​不知道应该查看哪些数据来验证我的理论。

我一直在考虑的事情是使用2个CPU和7.5 GB内存,每个工作20GB SSD,并将最大工作人数设置为50.在此配置下,我们有至少4名工人。

我的小册子摘要:
- 如何确定流媒体管道所需的CPU,RAM和磁盘空间? - 您如何确定管道应该配置SSD资源而不是标准硬盘? - 我可以通过哪些指标测量来衡量管道的性能?

0 个答案:

没有答案