鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

计算Executor相关参数经验值

目的

计算Executor相关参数经验值的最终结果是为了使CPU和内存尽可能被充分利用,从而提升资源利用率和任务执行效率。

方法

在实际测试中发现,鲲鹏处理器的NUMA特性与Yarn的NUMA感知功能对任务性能影响较大,因此需要考虑如何合理分配Container(即Executor)数量,确保Container(即Executor)能均衡分布在所有NUMA node上,同时结合计算节点数量确定Executor数量的基础倍数,使得资源能够被均衡利用。

  1. 确认鲲鹏处理器的NUMA特性(如2个NUMA node)及Yarn的计算节点数量(如3个计算节点),从而确定Executor数量的基础倍数(如2个NUMA node和3个计算节点的场景下为6的倍数)。
  2. 确定Executor数量范围。

    基于NUMA node数(如2个NUMA node)×计算节点数(如3个计算节点)×所需资源数(如实际任务所需资源数为2或3),计算Executor数量范围(如2×3×2=12至2×3×3=18,取12~18)。

  3. 计算总核数与Executor核数分配。

    统计集群总虚拟核数(如288核),根据Executor数量(例如取15个)来计算单个Executor核数(288÷15=19.2,此处取18核),因为还要预留核数给系统调度与Driver(288-15×18=18核)。

  4. 如果无法同时使CPU和内存满载运行,需要优先CPU满载,再根据GC日志判断是否需要增加内存。
  5. 如果是内存密集型任务,逐步调整内存至接近满载,此时CPU可能留有一定的余量,但需保持Executor内存与核数的比例约等于总内存/总核数的比例。