Новый способ синхронизации со временем — systemd -timesyncd. Чем заменить `ntpq -p `?

Во-первых, большая часть того, что появляется в результатах поиска в Интернете, устарела. Например, cgmanagerбольше не поддерживается в новых версиях systemd. Не используйте для этой работы cuplimit, nice, cgsetили другие инструменты, не следуйте 99% того, что появляется в веб-поиске. Они либо не будут работать так, как рекламируется (, как в случае инструментов управления cgroup, которые предполагают, что вы создадите свою собственную иерархию ), либо не выполнят свою работу, не прибегая к множеству хаков (, как в случае использования «хороших» уровней для управления целыми группами процессов ).

Хорошей новостью является то, что наряду с этими устаревшими (и следованием традиционному всепожирающему осьминогу-монстру -методу работы systemd )для всего существует конфигурация по умолчанию. в системе, и настроить его для системных служб тривиально.Просто добавьте конфигурацию наложения к службе, которую вы хотите ограничить :

.

$ sudo systemctl edit 

Добавьте раздел с любыми значениями управления ресурсами , которые вы хотите переопределить. В моем случае я придумал это:

[Service]
CPUWeight=20
CPUQuota=85%
IOWeight=20
MemorySwapMax=0

Эти значения не все необходимы, но первые два отвечают на поставленный вопрос:

  • CPUWeightпо умолчанию равно 100 для всех процессов в системе. Установка низкого значения по-прежнему позволяет процессу использовать ЦП, если ничто другое эффективно не поддерживает реакцию системы на другие задачи, не сильно замедляя результаты. Это произвольное целое число веса.
  • CPUQuota— это абсолютный предел того, сколько процессорного времени предоставляется, даже если больше ничего не происходит. Это процентное значение. В моем случае на самом деле не было необходимости устанавливать это, чтобы решить проблему перегрузки ресурсов. Я все равно установил его, чтобы снизить температуру процессора, когда накапливается много заданий CI.
  • IOWeightво многом совпадает с CPUWeight, в данном случае используется для того, чтобы диски были свободны для системных задач и чтобы они были заняты только заданиями CI, когда больше ничего не происходит.
  • MemorySwapMaxтакже не относится к вопросу, в моем случае я добавил его, потому что лучевой травер (povray), работающий в некоторых заданиях CI, кажется, использует 30+ гигабайт подкачки в дополнение к 30+ Гиги оперативной памяти в этой системе - хорошая идея только потому, что она есть. Он работает быстрее, если вы вообще не позволяете ему использовать его. Это, вероятно, лучше настроить в povray, но таким образом мне не нужно контролировать то, что происходит внутри заданий CI, и не нужно отключать системный своп.

Наконец, эти значения можно изменить «на лету» без перезапуска служб, запустив systemctl daemon-reload. Это очень удобно, чтобы сразу увидеть эффект от изменений.

1
18.02.2021, 03:34
0 ответов

Теги

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