问题一:如何发现Full GC问题?
如何发现Full GC问题?
参考回答:
Full GC问题可以通过监控Flink metrics来发现

另外,也可以在Flink UI界面上点击某一个TaskManager,然后点击Metric查看Old Generation GC次数,如果次数过多,就说明存在频繁GC的情况。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/642307
问题二:怎么判断内存不够?
怎么判断内存不够?
参考回答:
如果Flink TaskManager的Old Generation GC次数过大,可能意味着该TaskManager的heap内存不够。此外,一般需要缓存大量的数据的地方,如开窗计算时需要缓存window窗口段内的数据,如果内存不足,也可能导致性能问题。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/642308
问题三:Flink中的native内存应该怎么调整?
Flink中的native内存应该怎么调整?
参考回答:
在Flink中,进行开窗计算、聚合计算、维表关联、去重等操作时,可能需要调整native内存。这些操作通常会消耗大量的内存资源,因此,如果遇到性能瓶颈,可以尝试增加native内存来提高性能。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/642309
问题四:当出现DirectBuffer内存溢出时应该如何处理?
当出现DirectBuffer内存溢出时应该如何处理?
参考回答:
当出现DirectBuffer内存溢出(Out Of Memory)报错时,可以通过修改Blink任务参数来调大Direct memory,以解决内存溢出问题。
关于本问题的更多回答可点击原文查看:
https://developer.aliyun.com/ask/642310
问题五:从业务角度看,如何解决多维度去重问题?
从业务角度看,如何解决多维度去重问题?
参考回答:
从业务角度看,虽然起初看似是一个多维度(uid、request_id)去重问题,但实际上uid和request_id是1对多的关系。因此,可以转化为直接对request_id进行去重。此外,还可以参考UV去重的方式,采用hyperLogLog算法来计算曝光PV数据,以提高计算效率并降低存储需求。
关于本问题的更多回答可点击原文查看: