Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
Reviewed
Description
Found an AM that was consuming high CPU. The stack trace below shows that container reuse compatibility check with a high number of local resources was the culprit.
task scheduler compatibility check
"DelayedContainerManager" #112 prio=5 os_prio=0 tid=0x0000000003b59800 nid=0x1edba runnable [0x00007fe13c232000] java.lang.Thread.State: RUNNABLE at java.util.HashMap.putVal(HashMap.java:628) at java.util.HashMap.putMapEntries(HashMap.java:514) at java.util.HashMap.<init>(HashMap.java:489) at org.apache.tez.dag.app.ContainerContext.localResourcesCompatible(ContainerContext.java:132) at org.apache.tez.dag.app.ContainerContext.isSuperSet(ContainerContext.java:116) at org.apache.tez.dag.app.rm.container.ContainerContextMatcher.isSuperSet(ContainerContextMatcher.java:50) at org.apache.tez.dag.app.rm.YarnTaskSchedulerService.canAssignTaskToContainer(YarnTaskSchedulerService.java:1543) at org.apache.tez.dag.app.rm.YarnTaskSchedulerService.getMatchingRequestWithoutPriority(YarnTaskSchedulerService.java:1492) at org.apache.tez.dag.app.rm.YarnTaskSchedulerService.access$500(YarnTaskSchedulerService.java:85) at org.apache.tez.dag.app.rm.YarnTaskSchedulerService$NodeLocalContainerAssigner.assignReUsedContainer(YarnTaskSchedulerService.java:1870) at org.apache.tez.dag.app.rm.YarnTaskSchedulerService.assignReUsedContainerWithLocation(YarnTaskSchedulerService.java:1754) - locked <0x00000006e0d12600> (a org.apache.tez.dag.app.rm.YarnTaskSchedulerService) at org.apache.tez.dag.app.rm.YarnTaskSchedulerService.assignReUsedContainersWithLocation(YarnTaskSchedulerService.java:1712) - locked <0x00000006e0d12600> (a org.apache.tez.dag.app.rm.YarnTaskSchedulerService) at org.apache.tez.dag.app.rm.YarnTaskSchedulerService.tryAssignReUsedContainers(YarnTaskSchedulerService.java:578) - locked <0x00000006e0d12600> (a org.apache.tez.dag.app.rm.YarnTaskSchedulerService) at org.apache.tez.dag.app.rm.YarnTaskSchedulerService.access$800(YarnTaskSchedulerService.java:85) at org.apache.tez.dag.app.rm.YarnTaskSchedulerService$DelayedContainerManager.doAssignAll(YarnTaskSchedulerService.java:2103) - locked <0x00000006e0d12600> (a org.apache.tez.dag.app.rm.YarnTaskSchedulerService) at org.apache.tez.dag.app.rm.YarnTaskSchedulerService$DelayedContainerManager.mainLoop(YarnTaskSchedulerService.java:1984) at org.apache.tez.dag.app.rm.YarnTaskSchedulerService$DelayedContainerManager.run(YarnTaskSchedulerService.java:1974)