Skip to content

Instantly share code, notes, and snippets.

@mhausenblas
Last active November 28, 2016 14:04
Show Gist options
  • Save mhausenblas/224df8caa9a29175faac71ea026656c6 to your computer and use it in GitHub Desktop.
Save mhausenblas/224df8caa9a29175faac71ea026656c6 to your computer and use it in GitHub Desktop.
StackOverflow Q: 40827031

SO question: docker run --ulimit cpu=10 does not kill java process after timeout

Negative test

The following does not work (but should):

$ docker run --rm -i -v /home/core/tmp/so-40827031:/classes --ulimit cpu=10 java:8 java -cp /classes/ InfiniteLoop
$ docker run -d -v /home/core/tmp/so-40827031:/classes --ulimit cpu=10 java:8 java -cp /classes/ InfiniteLoop

Running the last command results in negative-test-results.md.

Positive test

The following works:

$ docker run --rm -i -v /home/core/tmp/so-40827031:/classes --ulimit cpu=10 java:8 bash -c 'date; java -cp /classes/ InfiniteLoop'
$ docker run -d -v /home/core/tmp/so-40827031:/classes --ulimit cpu=10 java:8 bash -c 'date; java -cp /classes/ InfiniteLoop'

Running the last command results in positive-test-results.md.

$ ps faux
...
root      1192  0.0  6.7 761524 33948 ?        Ssl  Nov24   5:16 docker daemon --host=fd:// --selinux-enabled
root      1208  0.0  1.6 278852  8092 ?        Ssl  Nov24   0:27  \_ containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime runc --start-timeout 2m
root      4857  0.0  0.6 133416  3436 ?        Sl   13:17   0:00      \_ containerd-shim 2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562 /var/run/docker/libconta
root      4869 98.8  4.8 2028504 24408 ?       Ssl  13:17   2:28          \_ java -cp /classes/ InfiniteLoop


$  sudo cinf

 NAMESPACE   TYPE  NPROCS  USERS                  CMD
 
 4026532199  mnt   1       244                    /usr/lib/systemd/sys
 4026532209  uts   1       0                      java-cp/classes/I
 4026532200  mnt   1       0                      /usr/lib/locksmith/l
 4026531838  uts   72      0,201,243,244,245,500  /usr/lib/systemd/sys
 4026531857  mnt   1       0
 4026531957  net   72      0,201,243,244,245,500  /usr/lib/systemd/sys
 4026532201  mnt   3       0                      dockerdaemon--host
 4026532211  pid   1       0                      java-cp/classes/I
 4026532213  net   1       0                      java-cp/classes/I
 4026531839  ipc   72      0,201,243,244,245,500  /usr/lib/systemd/sys
 4026531836  pid   72      0,201,243,244,245,500  /usr/lib/systemd/sys
 4026532256  mnt   1       245                    /usr/lib/systemd/sys
 4026532208  mnt   1       0                      java-cp/classes/I
 4026532210  ipc   1       0                      java-cp/classes/I
 4026532190  mnt   1       0                      /usr/lib/systemd/sys
 4026532198  mnt   1       243                    /usr/lib/systemd/sys
 4026531840  mnt   63      0,201,500              /usr/lib/systemd/sys
 4026531837  user  73      0,201,243,244,245,500  /usr/lib/systemd/sys
 
 
$  sudo cinf -namespace 4026532211

 PID   PPID  NAME  CMD                NTHREADS  CGROUPS                                                                                      STATE
 
 4869  4857  java  java-cp/classes/I  10        11:hugetlb:/docker/2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562          S (sleeping)
                                                10:freezer:/docker/2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562
                                                9:cpuset:/docker/2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562
                                                8:memory:/docker/2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562
                                                7:devices:/docker/2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562
                                                6:pids:/docker/2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562
                                                5:perf_event:/docker/2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562
                                                4:net_cls,net_prio:/docker/2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562
                                                3:blkio:/docker/2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562
                                                2:cpu,cpuacct:/docker/2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562
                                                1:name=systemd:/docker/2d97bfcbfec6a0444895a1682c28cc646778255fbf95045f5ceae9d40d931562


$ sudo cinf -cgroup 4869:2

CONTROLFILE                VALUE

cpu.shares                 1024
cpuacct.stat               user 25991 system 24
cpuacct.usage              259849614970
cpuacct.usage_sys          0
cpuacct.usage_user         259849614970
cgroup.procs               4869
cpu.cfs_quota_us           -1
cpu.stat                   nr_periods 0 nr_throttled 0
                           throttled_time 0
cpuacct.usage_percpu_sys   0
cpuacct.usage_percpu_user  259849614970
cpu.cfs_period_us          100000
cpu.rt_period_us           1000000
cpuacct.usage_percpu       259849614970
notify_on_release          0
tasks                      4869 4891 4893 4894 4895 4896
                           4897 4898 4899 4900
cgroup.clone_children      0
cpu.rt_runtime_us          0


$  sudo /home/core/bin/cinf -cgroup 4869:9

 CONTROLFILE                      VALUE
 
 cpuset.effective_mems            0
 cpuset.mem_hardwall              0
 cpuset.memory_migrate            0
 cpuset.sched_relax_domain_level  -1
 cpuset.mem_exclusive             0
 cpuset.memory_spread_slab        0
 cpuset.mems                      0
 tasks                            4869 4891 4893 4894 4895 4896
                                  4897 4898 4899 4900
 cgroup.clone_children            0
 cpuset.cpu_exclusive             0
 cpuset.memory_spread_page        0
 cpuset.sched_load_balance        1
 cgroup.procs                     4869
 cpuset.cpus                      0
 cpuset.effective_cpus            0
 cpuset.memory_pressure           0
 notify_on_release                0
$ ps faux
...
root      1192  0.0  6.7 761524 34276 ?        Ssl  Nov24   5:17 docker daemon --host=fd:// --selinux-enabled
root      1208  0.0  1.6 278852  8104 ?        Ssl  Nov24   0:27  \_ containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime runc --start-timeout 2m
root      5185  0.0  0.6 198952  3364 ?        Sl   13:33   0:00      \_ containerd-shim 10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23 /var/run/docker/libconta
root      5199  0.3  0.5  21748  2996 ?        Ss   13:33   0:00          \_ bash -c date; java -cp /classes/ InfiniteLoop
root      5221 89.3  4.8 2028504 24524 ?       Sl   13:33   0:02              \_ java -cp /classes/ InfiniteLoop


$  sudo cinf
 
  NAMESPACE   TYPE  NPROCS  USERS                  CMD
  
  4026531837  user  76      0,201,243,244,245,500  /usr/lib/systemd/sys
  4026532211  pid   2       0                      bash-cdate; java -
  4026532199  mnt   1       244                    /usr/lib/systemd/sys
  4026532213  net   2       0                      bash-cdate; java -
  4026532200  mnt   1       0                      /usr/lib/locksmith/l
  4026531838  uts   74      0,201,243,244,245,500  /usr/lib/systemd/sys
  4026531836  pid   74      0,201,243,244,245,500  /usr/lib/systemd/sys
  4026532256  mnt   1       245                    /usr/lib/systemd/sys
  4026531857  mnt   1       0
  4026532210  ipc   2       0                      bash-cdate; java -
  4026531840  mnt   65      0,201,500              /usr/lib/systemd/sys
  4026531839  ipc   74      0,201,243,244,245,500  /usr/lib/systemd/sys
  4026531957  net   74      0,201,243,244,245,500  /usr/lib/systemd/sys
  4026532190  mnt   1       0                      /usr/lib/systemd/sys
  4026532198  mnt   1       243                    /usr/lib/systemd/sys
  4026532201  mnt   3       0                      dockerdaemon--host
  4026532208  mnt   2       0                      bash-cdate; java -
  4026532209  uts   2       0                      bash-cdate; java -


$ sudo cinf -namespace 4026532211
 
  PID   PPID  NAME  CMD                 NTHREADS  CGROUPS                                                                                      STATE
  
  5199  5185  bash  bash-cdate; java    1         11:hugetlb:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23          S (sleeping)
                    -                             10:freezer:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  9:cpuset:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  8:memory:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  7:devices:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  6:pids:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  5:perf_event:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  4:net_cls,net_prio:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  3:blkio:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  2:cpu,cpuacct:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  1:name=systemd:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
  5221  5199  java  java-cp/classes/I   10        11:hugetlb:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23          S (sleeping)
                                                  10:freezer:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  9:cpuset:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  8:memory:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  7:devices:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  6:pids:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  5:perf_event:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  4:net_cls,net_prio:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  3:blkio:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  2:cpu,cpuacct:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23
                                                  1:name=systemd:/docker/10eaeb3a18cfa63bdcf1af3fdb9ca11551d20acf694b1f36342eb7a8f7efaa23


 $  sudo cinf -cgroup 5221:2
 
  CONTROLFILE                VALUE
  
  cgroup.clone_children      0
  cpu.cfs_period_us          100000
  cpu.cfs_quota_us           -1
  cpu.shares                 1024
  cpu.stat                   nr_periods 0 nr_throttled 0
                             throttled_time 0
  cpuacct.usage_percpu_sys   0
  cpuacct.usage_user         57726574393
  cgroup.procs               5199 5221
  cpuacct.usage              57726574393
  cpuacct.usage_percpu       57726574393
  cpuacct.usage_percpu_user  57726574393
  tasks                      5199 5221 5222 5224 5225 5226
                             5227 5228 5229 5230 5231
  cpuacct.stat               user 5767 system 9
  cpuacct.usage_sys          0
  cpu.rt_period_us           1000000
  cpu.rt_runtime_us          0
  notify_on_release          0


 $  sudo cinf -cgroup 5221:9
 
  CONTROLFILE                      VALUE
  
  cpuset.memory_migrate            0
  cpuset.mems                      0
  cpuset.cpu_exclusive             0
  cpuset.cpus                      0
  cpuset.memory_pressure           0
  cpuset.memory_spread_slab        0
  cpuset.effective_cpus            0
  cpuset.memory_spread_page        0
  cpuset.sched_relax_domain_level  -1
  cpuset.sched_load_balance        1
  notify_on_release                0
  tasks                            5199 5221 5222 5224 5225 5226
                                   5227 5228 5229 5230 5231
  cgroup.clone_children            0
  cgroup.procs                     5199 5221
  cpuset.effective_mems            0
  cpuset.mem_exclusive             0
  cpuset.mem_hardwall              0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment