diff --git a/s4a.tex b/s4a.tex index 35378b2..ab87203 100644 --- a/s4a.tex +++ b/s4a.tex @@ -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