大佬们好,我一个flink任务,计算一分钟内的某项几项指标的中位数,总共5个指标,因为中位数计算需要全窗口数据排序,所以计算比较复杂,现在遇到的问题的是一旦开启checkpoint任务就从source端开始反压严重,但关闭checkpoint就正常运行. 目前优化的步骤有: 1.语义放弃exactlyonce 改到atleast 2.分析发现keyby过程中有数据倾斜,已改成分布聚合,在第一轮聚合中key后添加随机数,在去除key后缀进行第二轮聚合 3.计算过程中使用RoaringBitmap作为中间数据缓存容器,最大限度减少内存损耗 4.增大并行度,提交时增大-yjm -ytm 内存配置 5.调整ck间隔时间 经过以上一些优化,任务性能确实有提高,绝大部分时间能正常运行,但每到业务高峰期(本公司业务最高峰在每天上午10点,这个点的数据量是平常的7~8倍),反压就立马非常严重,直至任务挂掉,但也没有oom之类的有效的错误日志输出
以上优化在各个版本都有测试,1.9,1.10,1.11都是一样的问题,总的来说的就是ck导致任务反压严重,不开启ck时,就算不经过上面的优化也正常运行,包括10点的业务高峰点 请大佬们给点优化思路,目前生产只能放弃ck,但这终归不是解决办法 -- Sent from: http://apache-flink.147419.n8.nabble.com/
