Итак, начиная с redhat / centos 7, управление системными ресурсами подверглось серьезной переработке. До redhat / centos 7 контрольные группы запускались с использованием пакетов libcgroup и демонов, таких как cgred.
Раньше, если я хотел переместить процесс в cgroup, я мог сделать что-то вроде:
cgclassify -g cpu:some_cgroup <pid>
Однако, исследуя подход systemd к управлению ресурсами, я нашел статьи, в которых говорилось, что пакеты libcgroup устарели и в основном не будут работать с redhat / centos 7.
Если cgclassify все еще должен работать, я не понимаю, как я буду использовать его для перемещения процессов, потому что на самом деле больше нет именованных cgroups, а скорее срезов / областей / служб.
Предполагая, что у меня есть зарегистрированный пользователь с uid 1111, я создал некоторые правила для ограничения ресурсов в systemd, следующая команда не работает для перемещения процесса в их пользовательский сегмент:
cgclassify -g cpu:user-1111.slice <pid>
Есть ли здесь соглашение, которое мне не хватает?
Я также видел, что есть systemd-run
команда, которая почти делает то, что я хочу, но нет возможности полностью передать ей каждую текущую переменную среды, о чем вам даже не нужно беспокоиться cgclassify
. Вы можете передавать переменные среды, но для фактической передачи всех переменных вам буквально нужно иметь запись для каждой переменной, передаваемой с помощью команды, которая позволяет передавать переменные среды.
Кто-нибудь задумывался о том, как заставить cgclassify работать, или даже просто изменить подход, который я могу предпринять?