Я пытаюсь разобраться, как работает настройка максимального пользовательского процесса в 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.
Заранее спасибо.