Изменить значение cgroup pid.max?

В настоящее время я отслеживаю cannot fork() ошибки на моем сервере Ubuntu, и мне удалось определить их по pid.max значению 700 в /sys/fs/cgroup/pids/. Однако я могу установить только значения /system.slice/pids.max и /user.slice/pids.max, но не pids.max. Кроме того, они сбрасываются после перезагрузки до значения max, которое снова применяет глобальное значение pids.max.

Можно ли просто поменять его с 700 на что-то выше? root + sudo не помогли.

Есть ли другой способ изменить это значение?


person PeterKogo    schedule 16.03.2020    source источник


Ответы (2)


После долгих разговоров с моим хостером сервера они наконец-то разошлись.

Я арендовал V-Server с очень мощным оборудованием за очень небольшие деньги. Уловка? Вы можете запускать только 700 одновременных задач. Вот откуда взялось значение pids.max и переопределило значения TasksMax и numprocs.

person PeterKogo    schedule 07.04.2020

Я думаю, вы ищете DefaultTasksMax= директиву от /etc/systemd/system.conf.

Вы можете проверить значение времени выполнения, введя systemctl show -p DefaultTasksMax:

$ systemctl show -p DefaultTasksMax
DefaultTasksMax=19096

Если вы хотите изменить его, просто отредактируйте соответствующую строку директивы в /etc/systemd/system.conf. Аналогичная директива (TasksMax=) существует для индивидуальной настройки этого параметра.

Соответствующая документация [0] [1] фрагменты:

TasksMax = N

Укажите максимальное количество задач, которые могут быть созданы в модуле. Это гарантирует, что количество задач, учитываемых для единицы (см. Выше), остается ниже определенного предела. Это либо абсолютное количество задач, либо процентное значение, которое берется по отношению к настроенному максимальному количеству задач в системе. Если присвоено специальное значение бесконечность, ограничение на количество задач не применяется. Это управляет атрибутом контрольной группы pids.max. Подробнее об этом атрибуте группы управления см. Процесс Цифровой контроллер.

Системным значением по умолчанию для этого параметра можно управлять с помощью DefaultTasksMax = в systemd-system.conf (5).

DefaultTasksMax =

Задайте значение по умолчанию для параметра TasksMax = на единицу. Подробности см. В systemd.resource-control (5). Этот параметр применяется ко всем типам единиц, которые поддерживают настройки управления ресурсами, за исключением единиц среза. По умолчанию - 15%, что равно 4915 по умолчанию для ядра на хосте, но может быть меньше в контейнерах ОС.

person Frantisek Sumsal    schedule 22.03.2020
comment
Спасибо за ответ. Я был немного неясен по этому поводу. Все обычные способы задания количества процессов (TasksMax, numproc) не влияли на значение pids.max. - person PeterKogo; 07.04.2020