0

我们在 Kinesis Data Analytics 上运行了 Flink 应用程序,在过去的几个月里,我们看到某些实例的 Max CPU % 达到了 100,而且我们的堆利用率表现相同。

Application Configuration:
Parallelism: 8
ParallelismPerKPU: 2

Kinesis as Source and Sink:
Source Kinesis: 4 shards (So effectively only 4 subtasks are consuming from source)
Sink Kinesis: 2 shards
Checkpoint Configuration:
ConfigurationType: CUSTOM
CheckpointInterval: 60000 # msec
MinPauseBetweenCheckpoints: 5000 # msec
CheckpointingEnabled: true

以下是我们过去两周申请的一些图表

CPU 利用率 - 统计数据:最大值,周期:1 小时CPU 利用率

堆利用率 - 统计数据:最大值,周期:1 小时堆利用率

传入流量 - 统计数据:总和,期间:1 小时传入流量

检查点大小 - 统计数据:平均,周期:1 小时检查点大小

检查点持续时间 - 统计数据:最大,周期:1 小时检查点持续时间

应用问题:

  1. CPU 应该低于 80,Heap 应该低于 90,这不是我们的例子
  2. 检查点的大小随着时间的推移而增加

有什么提示可以开始调查吗?

我尝试过的事情:

  1. 进行任务堆转储并使用https://fastthread.io/来查看诸如无限循环之类的任何问题,在那里我可以看到一些线程阻塞了另一个线程,但我认为这是预期的,因为我们正在从 kinesis 源流进行轮询
  2. 在影子环境中重放具有相同配置的持续高流量,CPU 不是尖峰
4

0 回答 0