Максимум пользовательских процессов в контейнере k8s и на хосте - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь разобраться, как работает настройка максимального пользовательского процесса в k8s.Можно запустить ulimit -aH в модуле и проверить настройку максимального количества пользовательских процессов:

core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7418
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1048576
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) unlimited
cpu time               (seconds, -t) unlimited
max user processes              (-u) unlimited
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

, затем, если вы выполните то же самое на хосте, чтобы сравнить:

-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             unlimited
-c: core file size (blocks)         unlimited
-m: resident set size (kbytes)      unlimited
-u: processes                       62799
-n: file descriptors                1048576
-l: locked-in-memory size (kbytes)  64
-v: address space (kbytes)          unlimited
-x: file locks                      unlimited
-i: pending signals                 62799
-q: bytes in POSIX msg queues       819200
-e: max nice                        0
-r: max rt priority                 0
-N 15:                              unlimited

IМы неоднократно видели, что максимальное значение пользовательских процессов на хосте намного ниже, чем максимальное число процессов в модуле.Nproc не является пространством имен и привязан к UID, но коррелирует ли это ограничение внутри модуля как-то с тем же ограничением на хосте для того же пользователя?Что делать, если у меня есть несколько модулей, которые имеют более высокую настройку для максимальных пользовательских процессов, например, для пользователя root, чем на хосте?

Существует такая вещь - pid cgroup - которая доступна в более новом ядре (начиная с 4.3), насколько я знаю, в докере была разработана их функция --pids-limit на ее основе.Но это еще не доступно для kubernetes.

Заранее спасибо.

1 Ответ

0 голосов
/ 30 мая 2018

Nproc не является пространством имен и привязан к UID, но коррелирует ли это ограничение внутри модуля как-то с тем же ограничением на хосте для того же пользователя?

Они не являютсякоррелированный.

что если у меня есть несколько модулей, которые имеют более высокую настройку для максимальных пользовательских процессов, например, для пользователя root, чем на хосте?

Ограничения от контейнера будутприменяется.Это одна из причин, почему Kubernetes не готов запустить ненадежную полезную нагрузку.

Существует такая вещь - pid cgroup - которая доступна в более новом ядре (начиная с 4.3), насколько яЗнаете, докер разработал свою функцию --pids-limit на ее основе.Но это еще не доступно для kubernetes.

Работа в процессе и многие вещи уже сделаны.Вы можете отслеживать это здесь и здесь .

...