Описание тега tanaka-kun-is-always-listless
Есть руководство для групп от Красной шляпы , которая может быть то полезным (но не ответить на этот вопрос).
Я знаю, как ограничить конкретный процесс на определенный процессор, в команду, чтобы запустить этот процесс, путем:
Во-первых, поставив следующее* в файле/etc/служба cgconfig.конф
:
гора {
наборе процессоров = /группе/наборе процессоров;
ЦП = /группе/ЦП;
подсистема cpuacct = /группе/подсистема cpuacct;
память = /контрольной/памяти;
устройств = /группе/устройств;
морозильник = /контрольной группы/морозильник;
net_cls = /группе/net_cls;
ввод ом-вывод ом = /группе/ввод ом-вывод ом;
}
группа cpu0only {
наборе процессоров {
системах ЦП = 0;
системах МЭМС = 0;
}
}
А затем запустить процесс и назначить ему специально для этой группы с помощью:
формат: cgexec -G в наборе процессоров:cpu0only моеимяпроцесса
Могу ли я ограничить все экземпляры конкретного процесса имя автоматически (я думаю, это правильно) класть следующее в файл/etc/cgrules.конф
:
пользователь#: процесс конечный контроллер
*:моеимяпроцесса наборе процессоров cpu0only
Мой вопрос: Как я могу сделать обратного?
Другими словами, Как я могу назначить все процессы, кроме определенного набора белый список процессов и их детей к ограниченной группе?
Основываясь на том, что я изучала, но не проверял, я считаю , что частичным решением может быть:
Добавить "неограниченного" контрольной группы:
группа любой ЦП {
наборе процессоров {
системах ЦП = 0-31;
системах МЭМС = 0; # Не уверен, что этот param, но это, похоже, не требуется
}
}
Назначить мой процесс явно на неограниченной группы, и все остальное в ограниченные группы:
пользователь#: процесс конечный контроллер
*:моеимяпроцесса наборе процессоров любой ЦП
* наборе процессоров cpu0only
Однако, оговоркой, на это, кажется, (с чтения документации, а не из тестирования, так что зерном соли), что дети моеимяпроцесса
будут переназначены только cpu0only
контрольной группы.
Возможным альтернативным подходом могло бы стать создание пользователя запустить моеимяпроцесса
и все этого пользователя процессы, неограниченной, а все остальное ограничено. Однако, в моем случае, этот процесс должен быть запущен пользователем root, и есть другие процессы, которые также должны выполняться корень, который должен быть ограничен.
Как я могу сделать это с группы?
Если нет такой возможности с контрольными группами (которые я теперь подозреваю, случай), мои идеи частичного решения правильно и они будут работать, как я думаю?
*Отказ от ответственности: это, наверное, не минимальный пример кода, я не понял всех деталей, поэтому я не знаю, что не надо.