我想了解窗口如何影响flink作业的性能,我运行的flink作业由以下运算符组成:
作业并行性(4,8,16):[auto gen source]-->[map1]-->[tumbling window(10s)]-->[map2]-->[sink]
Flink窗性能eps 4p、8p、16p
高于性能的作业限制在每秒50k+,而不管我如何从4-16并行度扩展集群。
当作业窗口被删除时,作业可以达到每秒200k。
作业并行性(4-8):[auto gen source]-->[map1]-->[map2]-->[sink]
flink performance无窗口4p、8p
我已经删除了窗口的逻辑,以消除限制性能的应用程序逻辑,但似乎窗口仍然导致整个流性能下降,即使该窗口只是一个传递函数。
此屏幕截图显示没有窗口的作业和启用空窗口的作业的性能。
空窗口显示尖峰,但操作员减速
这条小溪被封顶了,不能再扩大了。在这种情况下,如何提高性能?
注意:作业没有外部服务依赖项,检查点处于关闭状态。
1条答案
按热度按时间lrpiutwd1#
进一步的调查似乎是keyby()进入keyedstream操作造成的,当对流进行键控时,性能下降了近40%,如果有多个keyedstream,则性能会继续下降。
不管怎样,我能把表演做得更好吗?似乎使用键控是不可避免的。我也不知道为什么我们也尝试在我们的环境中扩展工作,性能只是限制在一个数字,而不管我们提供了多少并行性。cpu利用率和内存显示,当监视器使用nmon时,它并不处于临界状态。
如有任何意见和帮助,我们将不胜感激。