Добавлено примечание об устаревании resource-control
This commit is contained in:
77
s4a.tex
77
s4a.tex
@@ -3958,7 +3958,27 @@ Resource Limits}.
|
|||||||
В этой статье я попробую рассказать о методах управления механизмами
|
В этой статье я попробую рассказать о методах управления механизмами
|
||||||
распределения ресурсов между службами systemd. Эта функциональность присутствует
|
распределения ресурсов между службами systemd. Эта функциональность присутствует
|
||||||
в systemd уже долгое время, и давно пора рассказать о ней пользователям и
|
в systemd уже долгое время, и давно пора рассказать о ней пользователям и
|
||||||
администраторам.
|
администраторам\footnote{Прим. перев.: Дальнейшее содержимое этой главы
|
||||||
|
устарело и сохраняется лишь из исторических соображений (ну и для тех, кто
|
||||||
|
администрирует системы со старыми версиями ядра и systemd). Практически все
|
||||||
|
описанные в ней настройки объявлены устаревшими в ходе миграции с
|
||||||
|
\href{https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt}{cgroup v1}
|
||||||
|
на \href{https://www.kernel.org/doc/Documentation/cgroup-v2.txt}{cgroup v2},
|
||||||
|
произведенной в версиях 230--232. В частности, директива +CPUShares=+
|
||||||
|
заменена на +CPUWeight=+, +MemoryLimit=+~--- на +MemoryMax=+,
|
||||||
|
+BlockIOWeight=+~--- на +IOWeight=+/+IODeviceWeight=+,
|
||||||
|
+BlockIOReadBandwidth=+~--- на +IOReadBandwidthMax=+ и т.д. Смысл остается
|
||||||
|
тем же, поменялись лишь некоторые тонкости, связанные с работой cgroups.
|
||||||
|
Например, допустимые значения для +CPUShares+ лежали в диапазоне от 2 до 262144,
|
||||||
|
а для +BlockIOWeight+~--- от 10 до 1000, в то время как новые <<весовые>>
|
||||||
|
настройки имеют стандартный диапазон 1--10000. Также, добавлены новые настройки,
|
||||||
|
например, +CPUQuota=+ для деления процессора по долям, +MemorySwapMax=+ для
|
||||||
|
ограничения использования подкачки. В любом случае, лучше внимательно
|
||||||
|
ознакомиться с актуальной версией страницы руководства
|
||||||
|
\href{https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html}%
|
||||||
|
{systemd.resource-control(5)}. Кстати, используемый в статье механизм директив
|
||||||
|
+.include+ тоже устарел~--- вместо них нужно использовать фрагменты конфигов
|
||||||
|
(см. прим.~\ref{ftn:frag}).}.
|
||||||
|
|
||||||
В свое время я
|
В свое время я
|
||||||
\href{http://0pointer.de/blog/projects/cgroups-vs-cgroups.html}{пояснял}%
|
\href{http://0pointer.de/blog/projects/cgroups-vs-cgroups.html}{пояснял}%
|
||||||
@@ -4037,31 +4057,32 @@ CPUShares=1500
|
|||||||
умолчанию, сделанными разработчиками Apache или его сопровождающими в вашем
|
умолчанию, сделанными разработчиками Apache или его сопровождающими в вашем
|
||||||
дистрибутиве (если это включение не~указать явно, данный файл будет
|
дистрибутиве (если это включение не~указать явно, данный файл будет
|
||||||
проигнорирован). Далее, мы указываем тот параметр, который хотим
|
проигнорирован). Далее, мы указываем тот параметр, который хотим
|
||||||
изменить\footnote{Прим. перев.: В новых версиях systemd, начиная со 198, можно
|
изменить\footnote{\label{ftn:frag}Прим. перев.: В новых версиях systemd, начиная
|
||||||
поступить проще: вместо того, чтобы создавать свой юнит-файл в каталоге +/etc+ и
|
со 198, можно поступить проще: вместо того, чтобы создавать свой юнит-файл в
|
||||||
включать в него содержимое штатного (из +/usr+), достаточно просто создать
|
каталоге +/etc+ и включать в него содержимое штатного (из +/usr+), достаточно
|
||||||
каталог +/etc/systemd/system/httpd.service.d/+ и поместить в него файл
|
просто создать каталог +/etc/systemd/system/httpd.service.d/+ и поместить в него
|
||||||
+my_resource_limit.conf+ (суффикс +.conf+ обязателен), в котором указываются
|
файл +my_resource_limit.conf+ (суффикс +.conf+ обязателен), в котором
|
||||||
только те настройки, которые необходимо изменить (последние две строки
|
указываются только те настройки, которые необходимо изменить (последние две
|
||||||
вышеприведенного листинга). Это никак не~отменяет основного конфигурационного
|
строки вышеприведенного листинга). Это никак не~отменяет основного
|
||||||
файла юнита (который может находиться в +/usr+ или +/etc+), однако настройки из
|
конфигурационного файла юнита (который может находиться в +/usr+ или +/etc+),
|
||||||
+.d+-каталогов имеют более высокий приоритет и могут перекрывать настройки
|
однако настройки из +.d+-каталогов имеют более высокий приоритет и могут
|
||||||
основного файла. Все вышесказанное относится и к другим примерам из этого
|
перекрывать настройки основного файла. Все вышесказанное относится и к другим
|
||||||
раздела.}. Сохраняем файл, приказываем systemd перечитать конфигурацию, и
|
примерам из этого раздела.}. Сохраняем файл, приказываем systemd перечитать
|
||||||
перезапускаем Apache, чтобы настройки вступили в силу\footnote{Прим. перев.:
|
конфигурацию, и перезапускаем Apache, чтобы настройки вступили в
|
||||||
systemd версий до 197 (включительно) не~имел штатного механизма для изменения
|
силу\footnote{Прим. перев.: systemd версий до 197 (включительно) не~имел
|
||||||
параметров контрольных групп <<на лету>> (без перезапуска службы). Если у вас
|
штатного механизма для изменения параметров контрольных групп <<на лету>> (без
|
||||||
все же возникнет такая необходимость, вы можете узнать контрольную группу службы
|
перезапуска службы). Если у вас все же возникнет такая необходимость, вы можете
|
||||||
командой +systemctl show -p ControlGroup имя_службы.service+, и выполнить
|
узнать контрольную группу службы командой
|
||||||
требуемые настройки напрямую через запись значений в псевдофайлы cgroupfs
|
+systemctl show -p ControlGroup имя_службы.service+, и выполнить требуемые
|
||||||
(разумеется, при следующем запуске службы к ней будут применены параметры,
|
настройки напрямую через запись значений в псевдофайлы cgroupfs (разумеется, при
|
||||||
указанные в конфигурационном файле). В версиях systemd со 198 по 204,
|
следующем запуске службы к ней будут применены параметры, указанные в
|
||||||
программа +systemctl+ поддерживала команды +set-cgroup-attr+,
|
конфигурационном файле). В версиях systemd со 198 по 204, программа +systemctl+
|
||||||
+unset-cgroup-attr+ и +get-cgroup-attr+, позволявшие манипулировать настройками
|
поддерживала команды +set-cgroup-attr+, +unset-cgroup-attr+ и +get-cgroup-attr+,
|
||||||
контрольных групп. Начиная с systemd 205, они были заменены командой
|
позволявшие манипулировать настройками контрольных групп. Начиная с systemd 205,
|
||||||
+set-property+, работающей с параметрами конфигурации юнитов. Установленные
|
они были заменены командой +set-property+, работающей с параметрами конфигурации
|
||||||
через +systemctl+ настройки сохраняются во вспомогательных конфигурационных
|
юнитов. Установленные через +systemctl+ настройки сохраняются во
|
||||||
файлах, которые размещаются в +.d+-каталогах (см. примечание выше).}:
|
вспомогательных конфигурационных файлах, которые размещаются в +.d+-каталогах
|
||||||
|
(см. примечание выше).}:
|
||||||
\begin{Verbatim}
|
\begin{Verbatim}
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl restart httpd.service
|
systemctl restart httpd.service
|
||||||
@@ -5727,7 +5748,7 @@ exit
|
|||||||
уничтожается после завершения конвейера):
|
уничтожается после завершения конвейера):
|
||||||
\begin{Verbatim}
|
\begin{Verbatim}
|
||||||
# cat some-file.txt | systemd-run --pipe --property=DynamicUser=1 sort -u | \
|
# cat some-file.txt | systemd-run --pipe --property=DynamicUser=1 sort -u | \
|
||||||
grep -i foobar > some-other-file.txt
|
grep -i foobar > some-other-file.txt
|
||||||
\end{Verbatim}
|
\end{Verbatim}
|
||||||
\item Сочетая технологию динамических пользователей и экземпляров
|
\item Сочетая технологию динамических пользователей и экземпляров
|
||||||
служб\footnote{Прим перев.: Более подробно работа с экземплярами
|
служб\footnote{Прим перев.: Более подробно работа с экземплярами
|
||||||
@@ -6980,7 +7001,7 @@ systemctl --root=/ enable debug-shell.service
|
|||||||
+debug-shell.service+\footnote{Прим. перев.: Надо полагать, речь идет о
|
+debug-shell.service+\footnote{Прим. перев.: Надо полагать, речь идет о
|
||||||
чем-то вроде <<\texttt{systemctl add-wants kbrequest.target
|
чем-то вроде <<\texttt{systemctl add-wants kbrequest.target
|
||||||
debug-shell.service}>>.}~--- тогда отладочная оболочка будет запускаться
|
debug-shell.service}>>.}~--- тогда отладочная оболочка будет запускаться
|
||||||
по запросу (ALT–$\uparrow$ из tty). Указанные проблемы с безопасностью
|
по запросу (ALT--$\uparrow$ из tty). Указанные проблемы с безопасностью
|
||||||
при этом остаются, но оболочка хотя бы не~будет работать постоянно.
|
при этом остаются, но оболочка хотя бы не~будет работать постоянно.
|
||||||
|
|
||||||
\item[Проверка параметров ядра] Для корректной загрузки системы необходимо,
|
\item[Проверка параметров ядра] Для корректной загрузки системы необходимо,
|
||||||
|
|||||||
Reference in New Issue
Block a user