настройка setxkbmap для одного пользователя / отладка изменений xkbmap

systemd может ограничивать ресурсы цели/службы. На странице man:

CPUQuota :

Назначьте указанную квоту процессорного времени исполняемым процессам. Принимает процентное значение с суффиксом "%". Процент определяет максимальное количество процессорного времени, которое модуль должен получить по отношению к общему процессорному времени, доступному на одном процессоре. Используйте значения > 100 % для выделения процессорного времени более чем одному процессору. Это управляет атрибутом «cpu.max» в иерархии единой группы управления и атрибутом «cpu.cfs_quota_us» в устаревшей версии. Подробнее об этих атрибутах контрольной группы см. в cgroup-v2.txt и sched-design-CFS.txt.

Пример: CPUQuota=20% гарантирует, что исполняемые процессы никогда не получат более 20% процессорного времени на одном ЦП.

Подразумевается «CPUAccounting=true».

Поскольку использование этого подразумевает CPUAccounting, я также включу это

CPUAccounting :

Включите учет использования ЦП для этого устройства. Принимает логический аргумент. Обратите внимание, что включение учета ЦП для одного модуля также неявно включит его для всех модулей, содержащихся в одном и том же слайсе, а также для всех его родительских слайсов и содержащихся в них модулей. Системное значение по умолчанию для этого параметра можно контролировать с помощью DefaultCPUAccounting= в systemd-system.конф(5).

Я также приведу цитату из Slice :

Имя единицы среза, в которую помещается единица. По умолчанию system.slice для всех не созданных единиц все типы юнитов (кроме самих юнитов-срезов, см. ниже). Экземпляры по умолчанию помещаются в подслайс system.slice, названный в честь имени шаблона.

Таким образом, по умолчанию все будет помещено в один и тот же срез, что означает, что все находится в одном пуле ресурсов.

Также можно посмотреть MemoryHigh:

MemoryHigh :

Укажите верхний предел использования памяти выполняемыми процессами в этом блоке. Использование памяти может превысить предел, если это неизбежно, но процессы сильно замедляются, и в таких случаях память агрессивно отбирается. Это основной механизм управления использованием памяти юнитом.

Принимает размер памяти в байтах. Если значение имеет суффикс K, M, G или T, указанный размер памяти анализируется как килобайты, мегабайты, гигабайты или терабайты (с основанием 1024) соответственно. В качестве альтернативы можно указать процентное значение, которое берется относительно установленной физической памяти в системе. Если присвоено специальное значение «бесконечность», ограничение памяти не применяется. Это управляет атрибутом группы управления "memory.high". Подробнее об этом атрибуте контрольной группы см. в cgroup-v2.txt.

Подразумевается «MemoryAccounting=true».

Этот параметр поддерживается, только если используется единая иерархия групп управления и отключает MemoryLimit=.


Вы можете легко добавить скрипт в службу systemd.

Предположим, что /usr/local/thatscript.sh — это скрипт:

/usr/lib/systemd/system/thatscript.service

[Unit]
Description=This runs "thatscript"
ConditionFileNotEmpty=/usr/local/thatscript.sh

[Service]
Type=simple
ExecStart=/usr/local/thatscript.sh
CPUQuota=20%

[Install]
WantedBy=multi-user.target

Тогда вам понадобится демон systemctl -reload, чтобы прочитать новый файл службы, затем вы можете systemctl включить thatscript.service, если вы хотите, чтобы он запускался при загрузке, или systemctl запустить thatscript.service, если вы хотите запустить его вручную.

1
13.04.2017, 15:37
0 ответов

Теги

Похожие вопросы