首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flink特定TaskManager的高CPU使用率

Flink特定TaskManager的高CPU使用率
EN

Stack Overflow用户
提问于 2022-01-12 12:53:41
回答 1查看 559关注 0票数 1

使用Flink v1.13,我有3个任务管理器和1个作业管理器,它们的流没有限制,使用rocksdb作为状态后端(它们都运行着独立的服务器)。当我启动flink应用程序时,任务管理器的一个cpu负载高于其他任务管理器。我只是使用以下方法计算任务管理器jvm cpu负载:(flink_taskmanager_Status_JVM_CPU_Load{job="Flink"}*100)

启动应用程序时,CPU负载:

  • TaskManager 1 => 46.0 %,
  • TaskManager 2 => 54.0 %,
  • TaskManager 3 => 76.0 %,

4-6小时后,CPU负载:

  • TaskManager 1 => 40-45.0 %,
  • TaskManager 2 => 50~57.0 %,
  • TaskManager 3 => 88-95.0 % (几乎100%!)

如何平均分配负载?

Rocksdb也可以成为高cpu的原因吗?(或者如何测量rocksdb cpu使用率?)

EN

回答 1

Stack Overflow用户

发布于 2022-01-12 16:03:07

这种偏斜可能是由

  • 在TM3中具有更多的活动任务槽
  • 数据倾斜(例如,一个键(或一组密钥),其事件流量的公平份额已分配给TM3)
  • 如果密钥空间非常小,那么TM3分配的密钥可能比其公平的密钥份额还要多。

首先,您可以查看网络度量,看看事件流量是否均衡,在检查点度量中,检查点大小大致相当(RocksDB检查点大小是非常差的活动状态大小指示符,但是如果来自各种TMs的检查点在大小上有很大的不同,这将是有趣的信息)。

为了获得更多的洞察力,您可以查看各种RocksDB度量

一旦你知道了原因,你就可以努力去解决它。可能的解决办法包括:

  • 预聚合(例如,某种局部-全局聚合)
  • 增加密钥数量(更细粒度的密钥)
  • 增加并行性
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70681922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档