生产集群慢job造成节点负载过高影响其他job运行的排查记录

2021-01-14 10:33:33 浏览数 (1)

排查流程:

收到业务反馈,在执行任务时很慢,提供了job的ID,经排查发现某些节点CPU负载很高,影响了他的job运行,而节点负载高的开始时间都是9:30左右。

经过我们排查找到9:37启动的一个任务大概执行7个小时。

找到耗时task执行的节点,确实发现负载很高,找到了任务的进程。

查看此进程的堆栈信息,发现很多full gc的次数,时间大概6个小时左右,频繁的full gc会使cpu使用过高。

查看job的进程的详细信息发现java heap内存只有820M,task处理的记录约为7400多万,造成堆内存不足频繁的发出full gc。

问题基本已经定论了,推荐执行job时加上如下参数设置。。。。

hive> set mapreduce.map.memory.mb=4096;

 hive> set mapreduce.map.java.opts=-Xmx3686m;

 hive> set mapreduce.reduce.memory.mb=4096;

 hive> set mapreduce.reduce.java.opts=-Xmx3686m;

0 人点赞