Ограничение ресурсов сессий пользователя
Ограничение ресурсов сессий пользователя
В STAL поддерживается задание ограничений на используемые ресурсы сессий пользователя: память, процессор, количество процессов и задач, работа с сетью. Ограничения задаются в конфигурационном файле /etc/stal/limits.json
, по умолчанию применяются настройки секции «default».
Указанные ограничения ресурсов применяются непосредственно к пользователю, а не к конкретной его сессии.
Пример конфигурационного файла после установки STAL:
{ "default": { "cpu:weight": 0, "cpu:quota": 0, "memory:high": "", "memory:max": "", "tasks:max": 0, "network:deny": "", "network:allow": "" }, "groups": [ { "name": "test-admins", "cpu:weight": 0, "cpu:quota": 0, "memory:high": "", "memory:max": "", "tasks:max": 1024 }, { "name": "test-users", "cpu:weight": 0, "cpu:quota": 20, "memory:high": "2G", "memory:max": "3G", "tasks:max": 256 } ], "users": [ { "name": "vasyan", "cpu:weight": 0, "cpu:quota": 3, "memory:high": "1G", "memory:max": "2G", "tasks:max": 128, "network:deny": "any", "network:allow": "localhost" } ] }
Конфигурационный файл содержит секции:
- «default»: задает ограничения по умолчанию;
- «groups»: задает ограничения пользователя, если он состоит в указанной группе;
- «users»: задает ограничения пользователя.
Список доступных параметров конфигурационного файла /etc/stal/limits.json
приведен в таблице.
Подробную информацию по используемым значениям параметров системы управления службами systemd
можно получить по ссылке: https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html.
Параметр | Назначение |
---|---|
name | Имя группы или пользователя, к которому будут применены ограничения |
| Соответствует параметру «CPUWeight» в системе управления службами Разрешенные значения от 1 до 10000, по умолчанию Значение «0»: функциональность не используется. |
| Соответствует параметру «CPUQuota» в системе управления службами Значение указывается в процентах на одно ядро процессора. Значение «0»: функциональность не используется |
| Ограничение использования памяти выполняемыми процессами. Ограничение может быть превышено, если это неизбежно, но в таких случаях процессы сильно замедляются. Соответствует параметру «MemoryHigh» в системе управления службами Значение задается в байтах. Также могут быть использованы суффиксы:
Значение не задано: параметр и функциональность не используются |
| Абсолютное ограничение использования памяти выполняемыми процессами. Если ограничение превышается, будет вызвано системное средство устранения нехватки памяти. Соответствует параметру «MemoryMax» в системе управления службами Значения задаются аналогично параметру Значение не задано: функциональность не используется |
| Максимальное количество задач, которые можно создать для сессии. Соответствует параметру «TasksMax» в системе управления службами Значение «0»: функциональность не используется |
| Соответствует параметру «IPAddressDeny» в системе управления службами В качестве значений можно указывать:
Значение не задано: функциональность не используется |
| Соответствует параметру «IPAddressAllow» в системе управления службами Значение не задано: функциональность не используется |
Для контроля значений ресурсов нужно воспользоваться командами:
sudo loginctl list-sessions sudo systemctl show session-SID.scope sudo systemctl show user-UID.slice
где:
SID
- идентификатор сессии пользователя;
UID
- идентификатор пользователя.