git - Ubuntu-Server: Every SSH-Connect creates non deleted cgroup -


we running ubuntu 14.04 servers somehow create new cgroup each ssh-session created, sadly cgroups not deleted when session closed.

as running gitlab on 1 of servers , git-clients poll once per minute end thousands of zombie cgroups git-user per week.

about once per month reach cgroup-limit leading problems docker saying:

starting container process caused "process_linux.go:258: applying cgroup configuration process caused \"mkdir /sys/fs/cgroup/memory/docker/28485427c2689d7a2c4be83990af873e9ab5732c5c741f0d10bfc3ba21b1d167: no space left on device\""

it seems problem occurs on servers having docker installed. other servers delete cgroups correctly. maybe 1 of dockers install-dependencies problem here. docker deleting cgroups correctly.

the fix problem know of, restarting machine.

here output of docker version:

client:  version:      17.03.1-ce  api version:  1.27  go version:   go1.7.5  git commit:   c6d412e  built:        mon mar 27 17:10:36 2017  os/arch:      linux/amd64  server:  version:      17.03.1-ce  api version:  1.27 (minimum version 1.12)  go version:   go1.7.5  git commit:   c6d412e  built:        mon mar 27 17:10:36 2017  os/arch:      linux/amd64  experimental: false 

here output of docker info

containers: 3  running: 3  paused: 0  stopped: 0 images: 4576 server version: 17.03.1-ce storage driver: aufs  root dir: /var/lib/docker/aufs  backing filesystem: extfs  dirs: 2359  dirperm1 supported: true logging driver: json-file cgroup driver: cgroupfs plugins:   volume: local  network: bridge host macvlan null overlay swarm: inactive runtimes: runc default runtime: runc init binary: docker-init containerd version: 4ab9917febca54791c5f071a9d1f404867857fcc runc version: 54296cf40ad8143b62dbcaa1d90e520a2136ddfe init version: 949e6fa security options:  apparmor kernel version: 4.2.0-42-generic operating system: ubuntu 14.04.5 lts ostype: linux architecture: x86_64 cpus: 8 total memory: 31.33 gib name: repo id: kt6v:flpi:ehy6:2fsp:nebt:t65w:23ix:irfk:aqm5:kslm:fq3d:57x5 docker root dir: /var/lib/docker debug mode (client): false debug mode (server): false registry: https://index.docker.io/v1/ warning: no swap limit support experimental: false insecure registries:  127.0.0.0/8 live restore enabled: false 

the kernel version via uname -a:

linux repo 4.2.0-42-generic #49~14.04.1-ubuntu smp wed jun 29 20:22:11 utc 2016 x86_64 x86_64 x86_64 gnu/linux

cat /proc/cgroups after ~3h uptime:

#subsys_name    hierarchy   num_cgroups enabled cpuset  1   623 1 cpu 2   627 1 cpuacct 3   623 1 blkio   4   623 1 memory  5   627 1 devices 6   623 1 freezer 7   623 1 net_cls 8   623 1 perf_event  9   623 1 net_prio    10  623 1 hugetlb 11  623 1 

of these 623 cgroups 616 in /sys/fs/cgroup/memory/user/998.user user 998 git user.

i know not ideal solution removes symptom , not cause, created script can run via cron.

#!/bin/bash set -e cgroup_base_dir="/sys/fs/cgroup" declare -a cgroup_subsystems=('cpuset' 'cpu' 'cpuacct' 'blkio' 'memory' 'devices' 'freezer' 'net_cls' 'perf_event' 'net_prio' 'hugetlb')  cgroup_subsystem in "${cgroup_subsystems[@]}";         cd "${cgroup_base_dir}/${cgroup_subsystem}"         old_cgroup in $(find user/*.user/*.session -type d -ctime +10);                 /usr/bin/cgdelete -r "${cgroup_subsystem}:/${old_cgroup}"         done done 

this search session-cgroups older 10 days , deletes them using cgdelete cgroup-tools.


Comments

Popular posts from this blog

PHP and MySQL WP -

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

go - golang pprof for c library code -