[ https://issues.apache.org/jira/browse/YARN-8648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16603202#comment-16603202 ]
Jim Brennan commented on YARN-8648: ----------------------------------- I've uploaded a patch that addresses most of issues raised by [~jlowe] - except for moving the functionality to the Docker RM command - I wanted to put up these other changes before reworking that part. I misspoke in my earlier comment - I don't think any change would be needed to DockerContainerDeletionService, because it ends up calling LinuxContainerExecutor.removeDockerContainer(), which can lookup the yarn-hierarchy. My only reservation to moving this to the DockerRmCommand is that most (if not all) arguments to Docker*Commands are actual command line arguments for the docker command. This would be an exception to that. Not sure how much that matters, because I agree this cleanup does naturally align with removing the container. > Container cgroups are leaked when using docker > ---------------------------------------------- > > Key: YARN-8648 > URL: https://issues.apache.org/jira/browse/YARN-8648 > Project: Hadoop YARN > Issue Type: Bug > Reporter: Jim Brennan > Assignee: Jim Brennan > Priority: Major > Labels: Docker > Attachments: YARN-8648.001.patch, YARN-8648.002.patch > > > When you run with docker and enable cgroups for cpu, docker creates cgroups > for all resources on the system, not just for cpu. For instance, if the > {{yarn.nodemanager.linux-container-executor.cgroups.hierarchy=/hadoop-yarn}}, > the nodemanager will create a cgroup for each container under > {{/sys/fs/cgroup/cpu/hadoop-yarn}}. In the docker case, we pass this path > via the {{--cgroup-parent}} command line argument. Docker then creates a > cgroup for the docker container under that, for instance: > {{/sys/fs/cgroup/cpu/hadoop-yarn/container_id/docker_container_id}}. > When the container exits, docker cleans up the {{docker_container_id}} > cgroup, and the nodemanager cleans up the {{container_id}} cgroup, All is > good under {{/sys/fs/cgroup/hadoop-yarn}}. > The problem is that docker also creates that same hierarchy under every > resource under {{/sys/fs/cgroup}}. On the rhel7 system I am using, these > are: blkio, cpuset, devices, freezer, hugetlb, memory, net_cls, net_prio, > perf_event, and systemd. So for instance, docker creates > {{/sys/fs/cgroup/cpuset/hadoop-yarn/container_id/docker_container_id}}, but > it only cleans up the leaf cgroup {{docker_container_id}}. Nobody cleans up > the {{container_id}} cgroups for these other resources. On one of our busy > clusters, we found > 100,000 of these leaked cgroups. > I found this in our 2.8-based version of hadoop, but I have been able to > repro with current hadoop. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org