美文网首页Flink精选学习
【Flink 精选】常见的性能问题及其定位思路

【Flink 精选】常见的性能问题及其定位思路

作者: 熊本极客 | 来源:发表于2020-09-10 10:26 被阅读0次

    常见的性能问题及其定位思路


    1.常见的性能问题

    (1)JSON序列化和反序列化

    source的序列化,sink的反序列化

    (2)MAP和SET的hash冲突

    MAP和SET的负载因子随着数据的增大而变大,使得hash冲突的几率大大增加,导致了插入和查询效率严重下降。

    (3)数据倾斜

    数据分布原理符合“二八原理”,即一般情况下数据的分布是不均匀的。如果数据分布严重不均匀,则出现数据倾斜,导致大量的数据集中在某个Subtask。数据倾斜不但导致 job 的性能和吞吐量下降,而且可能使得JVM 的内存资源短缺导致频繁 GC,严重的情况可以导致TaskManager的失联。

    (4)外部低速系统交互

    sink 对接的外部低速系统,例如 Mysql、Hbase 等,不支持高写入量。如果 sink 的数据量剧增,严重的可能导致外部低速系统的崩溃。

    (5)频繁GC

    JVM 内存不足或者分配不合理,频繁 GC,甚至 TaskManager 的失联。

    (6)大窗口

    滚动窗口大小过大、滑动窗口的大小和滑动距离过小、数据量大,可能导致缓存数据量太大,使得 JVM 内存不足甚至 GC,还可能导致 checkpoint 时间变大甚至超时。

    常见性能问题

    2.问题的定位思路

    定位口诀:一压二查三指标,延迟吞吐是核心。时刻关注资源量 ,  排查首先看GC。

    (1)看反压

    通常最后一个反压的 Subtask,其下游就是反压的源头,即 job 的瓶颈。

    (2)看checkpoint时长

    checkpoint 时长影响 job 整体吞吐

    (3)看核心指标

    延迟、吞吐是最重要的指标。

    (4)资源的使用率

    提高资源利用率是最终目的。

    定位思路

                       

    相关文章

      网友评论

        本文标题:【Flink 精选】常见的性能问题及其定位思路

        本文链接:https://www.haomeiwen.com/subject/cglsektx.html