我们在 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 应该低于 80,Heap 应该低于 90,这不是我们的例子
- 检查点的大小随着时间的推移而增加
有什么提示可以开始调查吗?
我尝试过的事情:
- 进行任务堆转储并使用https://fastthread.io/来查看诸如无限循环之类的任何问题,在那里我可以看到一些线程阻塞了另一个线程,但我认为这是预期的,因为我们正在从 kinesis 源流进行轮询
- 在影子环境中重放具有相同配置的持续高流量,CPU 不是尖峰