Version v5.1 (2011-05-14 18:48) [AUTO]

This commit is contained in:
nnz1024
2011-05-14 18:48:00 +04:00
parent c24887c795
commit d7012437df

52
s4a.tex
View File

@@ -1392,17 +1392,17 @@ systemd уже подготовлен для работы внутри таки
Fedora~15\footnote{Также известный как величайший в истории релиз свободной ОС}
является первым релизом Fedora, использующим systemd в качестве системы
инициализации по умлочанию. Основной нашей целью при работе над выпуском F15
является обеспечение полной интеграции и корректной работы всех компонентов. При
подготовке следующего релиза, F16, мы сконцентрируемся на дальнейшей полировке и
ускорении системы. Для этого мы подготовили ряд инструментов (доступных уже в
F15), которые должны помочь нам в поиске проблем, связанных с процессом
загрузки. В этой статье я попытаюсь рассказать о том, как найти виновников
медленной загрузки вашей системы, и о том, что с ними делать дальше. Мы хотим
помочь вам в поиске тех системных компонентов, которые являются причинами выших
проблем.
инициализации по умолчанию. Основной нашей целью при работе над выпуском F15
является обеспечение полной взаимной интеграции и корректной работы всех
компонентов. При подготовке следующего релиза, F16, мы сконцентрируемся на
дальнейшей полировке и ускорении системы. Для этого мы подготовили ряд
инструментов (доступных уже в F15), которые должны помочь нам в поиске проблем,
связанных с процессом загрузки. В этой статье я попытаюсь рассказать о том, как
найти виновников медленной загрузки вашей системы, и о том, что с ними делать
дальше. Мы хотим помочь вам в поиске тех системных компонентов, которые являются
причинами ваших проблем.
Первый инструмент, который мы можем вам предложить, очень прост: по зварешении
Первый инструмент, который мы можем вам предложить, очень прост: по завершении
загрузки, systemd регистрирует в системном журнале информацию о суммарном
времени загрузки:
\begin{Verbatim}
@@ -1458,6 +1458,38 @@ $ systemd-analyze blame
...
\end{Verbatim}
Она выводит список юнитов systemd, активированных при загрузке, с указанием
времени инициализации для каждого из них. Список отсортирован по убыванию этого
времени, поэтому наибольший интерес для нас представляют первые строчки. В нашем
случае это +udev-settle.service+ и
+cryptsetup@luks\x2d9899b85d\x2df790\x2d4d2a\x2da650\x2d8b7d2fb92cc3.service+,
инициализация которых занимает более одной секунды. Стоит отметить, что к
анализу вывода команды +systemd-analyze blame+ тоже следует подходить с
осторожностью: она не~поясняет, \emph{почему} тот или иной юнит тратит
столько-то времени, она лишь констатирует факт, что время было затрачено. Кроме
того, не~стоит забывать, что юниты могут запускаться параллельно. В частности,
если две службы были запущены одновременно, то время их инициализации будет
значительно меньше, чем сумма времен инициализации каждой из них.
Рассмотрим повнимательнее первого осквернителя нашей загрузки: службу
+udev-settle.service+. Почему ей требуется так много времени для запуска, и что
мы можем с этим сделать? Эта служба выполняет очень простую задачу: она ожидает,
пока udev завершит опрос устройств, после чего завершается. Опрос же устройств
может занимать довольно много времени. Например, в нашем случае опрос устройств
занимает более 6~секунд из-за встроенного в компьютер 3G-модема, в котором
отсутствует SIM-карта. Этот модем очень долго отвечает на запросы udev. Опрос
устройств является частью схемы, обеспечивающей работу ModemManager'а и
позволяющей NetworkManager'у упростить для вас настройку 3G. Казалось бы,
очевидно, что виновником задержек является именно ModemManager, так как опрос
устройств для него занимает слишком много времени. Но такое обвинение будет
заведомо ошибочным. Дело в том, что опрос устройств вообще является довольно
длительной процедурой. Медленный опрос 3G-устройств для ModemManager является
частным случаем, отражающим это общее правило. Хорошая система опроса устройств
обязательно должна учитывать тот факт, что операция опроса любого из устройств
может затянуться надолго. Истинной причиной наших проблем является тот факт,
что мы должны ожидать завершения опроса устройств, т.е., наличие
+udev-settle.service+ как обязательной части нашего процесса загрузки.
\end{document}
vim:ft=tex:tw=80:spell:spelllang=ru