Можно ли использовать переменную в конфигурации модуля монтирования systemd?

Доли относительны для разных групп. Например, назначение 25% ЦП означает, что контрольная группа будет наблюдать «по крайней мере» эту часть ЦП, но может использовать больше. Из красной документации по cgroups :

Обратите внимание, что доли времени ЦП распределяются по всем ядрам ЦП в многоядерных системах. Даже если контрольная группа ограничена менее чем 100% ЦП в многоядерной системе, она может использовать 100% каждого отдельного ядра ЦП.

...

Фактическое количество процессорного времени, доступного контрольной группе, может варьироваться в зависимости от количества контрольных групп, существующих в системе. Если относительная доля контрольной группы составляет 1000, а у двух других контрольных групп относительная доля составляет 500, первая контрольная группа получает 50% всего процессорного времени в случаях, когда процессы во всех контрольных группах пытаются использовать 100% ЦП. Однако, если добавляется другая контрольная группа с относительной долей 1000, первой контрольной группе разрешено использовать только 33% ЦП (остальные контрольные группы получают 16,5%, 16,5% и 33% ЦП).

Если вы хотите жестко ограничить пропускную способность ЦП, вы можете использовать cpu.cfs_quota_us и cpu.cfs_period_us . Из документации CFS ядра :

Полоса пропускания, разрешенная для группы, указывается с использованием квоты и периода. В течение каждого заданного «периода» (микросекунды) группе разрешается использовать только микросекунды «квоты» времени ЦП. Когда потребление полосы пропускания ЦП группой превышает этот предел (для этого периода), задачи, принадлежащие ее иерархии, будут ограничены, и им не будет разрешено запускаться снова до следующего периода .

Однако ни один из этих двух вариантов не позволит вам перенести группу между отдельными процессорами без изменения конфигурации cgroups.

4
12.06.2019, 06:01
2 ответа

Согласно man systemd.mount, здесь не поддерживается подстановка переменных.

Я считаю, что все еще возможно написать службу systemd, которая запускается в начале процесса загрузки и записывает динамически сгенерированный .mountфайл.

1
27.01.2020, 20:51

То, что вы описываете, и есть то, для чего нужны генераторы, см. man systemd.generators. Сравните man systemd-fstab-generator, который генерирует единицы крепления из /etc/fstab, он также читает, например,. root=из командной строки ядра. Тем не менее, если вы поддерживаете только параметр командной строки ядра и у вас нет конфигурационного файла, вы можете быть так же счастливы, написав для него ранний -загрузочный(DefaultDependencies=no)служебный модуль.

0
27.01.2020, 20:51

Теги

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