Составить полное представление о загрузке Windows можно с помощью набора Windows Performance Toolkit. Утилиты командной строки xbootmgr и xperf позволяют создать подробный отчет о запуске системы и представить его в графическом и текстовом виде для всестороннего анализа загрузки.
Эта статья продолжает серию материалов о загрузке Windows. Вы уже знаете, как получить подробный отчет о загрузке и устранить основные системные проблемы, а также ускорить загрузку системы, не прилагая особых усилий. Вы также познакомились со способом диагностики загрузки с помощью журнала событий. Я уверен, что после изучения этих статей и применения полученных знаний на практике ваша система стала загружаться быстрее.
Однако эти простые способы не позволяют выявить скрытые факторы или проблемы, замедляющие загрузку Windows. Теперь настало время познакомиться поближе со всеми этапами загрузки Windows и провести их детальный анализ с помощью Windows Performance Toolkit (WPT).
[+] Сегодня в программе
Загрузка и установка WPT
С выходом каждой новой Windows обновляются средства для анализа производительности Windows, поэтому я рекомендую использовать Windows Performance Analyzer (WPA) из Windows ADK для диагностики загрузки всех поддерживаемых ОС Windows. Краткое руководство по работе с WPA включено в статью об изучении автозагрузки Windows. Изложенные далее сведения об этапах загрузки применимы ко всем поддерживаемым ОС Windows.
Посмотреть устаревшие инструкции по установке WPT для Windows 7
Поскольку набор Windows Performance Toolkit 4.7 для Windows 7 и Vista недоступен для отдельной загрузки, этому вопросу придется уделить чуть больше внимания, чем обычно. Самый простой и экономичный с точки зрения трафика способ – это скачать его с помощью веб-установщика Windows 7 SDK. Пройдя все приветственные окна установщика, вы увидите страницу с выбором компонентов.
Здесь нужно снять все флажки кроме одного, показанного на рисунке и продолжить установку.
Решения некоторых проблем с установкой SDK вы найдете здесь.
Вы, наверное, обратили внимание, что WPT присутствует в двух узлах. Если вам нужны пакеты MSI, их можно скачать, отметив флажок в узле Redistributable Packages. После установки вы найдете пакеты для различных архитектур в папке Program Files\Microsoft SDKs\Windows\v7.1\Redist. Если вы выбрали только этот вариант (вместо рекомендуемого выше), запустите установку двойным щелчком по MSI-пакету.
Подготовка к работе
Следуя трем простым правилам, вы застрахуете себя от возможных проблем, обеспечите правильную работу всех команд и точно измерите длительность загрузки.
- Прежде чем выполнить первую команду, создайте точку восстановления системы и убедитесь, что у вас есть под рукой установочный диск / флэшка или диск восстановления. Предупреждение вовсе не дежурное, ибо случаи неадекватного поведения WPT были отмечены у нас на форуме, да и сам я их видел.
- Включите автоматический вход в систему, чтобы задержка на ввод пароля не влияла на измерения.
- Убедитесь, что на разделе есть несколько гигабайт свободного пространства, поскольку при анализе могут создаваться файлы большого размера.
Все команды выполняйте в командной строке, запущенной от имени администратора. Там же можно добавить в меню пункт для ее запуска в нужной папке – пригодится.
Сбор данных
Все логи загрузки лучше хранить в одной папке, допустим, C:\Trace. Откройте командную строку с полными правами и введите:
md c:\Trace
Здесь и далее я буду использовать пути применительно к этой папке и стандартной установке WPT в 32-разрядной Windows 7. При необходимости изменяйте пути на свои.
Закройте все программы и сохраните все документы. Процесс сбора данных о загрузке системы запускается одной командой:
xbootmgr -trace boot -traceFlags BASE+CSWITCH+DRIVERS+POWER -resultPath C:\Trace
Аналогичные команды можно использовать для диагностики
гибернации:
xbootmgr -trace hibernate -traceFlags BASE+CSWITCH+DRIVERS+POWER -resultPath C:\Trace
сна:
xbootmgr -trace standby -traceFlags BASE+CSWITCH+DRIVERS+POWER -resultPath C:\Trace
выключения:
xbootmgr -trace shutdown -noPrepReboot -traceFlags BASE+CSWITCH+DRIVERS+POWER -resultPath C:\Trace
Примечание. Если при выполнении команд вы видите сообщение «xbootmgr не является внутренней или внешней командой», установка была неудачной. Вы найдете решение в этой теме форума.
Вернемся к загрузке, однако. Компьютер будет перезагружен. Если после входа в систему вы увидите запрос UAC от xbootmgr, разрешите утилите продолжить работу. Через две минуты вы увидите примерно такое окно.
Когда оно исчезнет, в папке C:\Trace должно быть три файла, как показано на рисунке ниже.
Если вы вместо файла boot_BASE+CSWITCH+DRIVERS+POWER_1.etl видите там два других файла с расширением ETL, это может означать, что утилита еще работает, над их объединением в один – подождите несколько минут. При отсутствии изменений выполните в командной строке
xperf –stop
и перезагрузите систему. После чего попробуйте заново запустить сбор данных.
Примечание. Если в результате сбоя у вас продолжают записываться отчеты после каждой перезагрузки, выполните:
xbootmgr -remove
Анализируемые файлы и первый взгляд на этапы загрузки
Для анализа используются два файла: ETL и создаваемый из него XML.
ETL
Я думаю, что вы уже успели дважды щелкнуть файл boot_BASE+CSWITCH+DRIVERS+POWER_1.etl и полюбоваться красивыми графиками и диаграммами. В левой панели графики можно отображать и скрывать, а также переходить к ним двойным щелчком мыши.
В WPA из ADK для Windows 10 сводку этапов загрузки можно получить так. Из меню Profiles — Apply — Browse Catalog выберите FullBoot.Boot.wpaprofile. При этом автоматически открывается несколько вкладок с подборками сведений. Для отображения информации на отдельной вкладке из левой панели выберите Regions of interest — FullBoot. Получите такую диаграмму и таблицу.
В ADK для Windows 7 базовый график Boot Phases был доступен сразу
График Boot Phases отражает длительность основных этапов загрузки, которые мы будем рассматривать подробнее дальше. На нем видно, что последний этап, Post Boot занял 26 секунд (Duration), а общее время загрузки составило 64 секунды (End Time).
Для определения длительности основных этапов загрузки можно выделять их мышью, как показано в нижней части рисунка. Можно также щелкнуть на графике правой кнопкой мыши и выбрать из меню пункт Summary Table, чтобы получить отчет в табличном режиме (верхняя часть рисунка).
XML
Для удаленной диагностики по почте или в форуме можно создать текстовый отчет в виде XML-файла. Выполните команды:
cd c:\trace xperf /tti -i boot_BASE+CSWITCH+DRIVERS+POWER_1.etl -o summary_boot.xml -a boot
Первая переходит в папку с логами, а вторая — создает требуемый XML-файл. Для его просмотра отлично подойдет Internet Explorer!
Сложите узлы, как показано на рисунке, чтобы лучше видеть общую картину. В узле timing указано время в миллисекундах, и там можно увидеть длительность двух больших, условно говоря, частей загрузки (выделены зеленым):
- bootDoneViaExplorer – время загрузки операционной системы вплоть до появления рабочего стола, в данном примере 37 секунд
- bootDoneViaPostBoot – полное время загрузки системы, рабочего стола и всех программ в автозагрузке, в данном примере 64 секунды (из этой цифры следует вычесть 10 секунд, в течение которых определяется полное бездействие системы)
Время первой части складывается из основных этапов загрузки операционной системы (обведены синим), вплоть до начала загрузки рабочего стола. В уже знакомом вам событии 100 журнала Diagnostics-Performance длительность этого этапа записывается в параметре MainPathBootTime.
Разница между этими двумя частями – это время от начала загрузки рабочего стола, до его полной готовности. В событии 100 журнала Diagnostics-Performance — это BootPostBootTime.
Этапы загрузки Windows и их диагностика
Для анализа загрузки нужно представлять, не только в какой последовательности эти этапы идут, но и что происходит на каждом из них. К сожалению, официальная документация по этому вопросу существует только на английском и достаточно сложна технически. Далее я предлагаю вам выдержки из этого документа в своем изложении, с дополнениями и в сопровождении собственных примеров диагностики.
На рисунке ниже представлены три основных этапа загрузки, причем главный из них состоит из четырех фаз.
Давайте рассмотрим все этапы подробно.
Этап OSLoader
Этап OSLoader следует сразу после инициализации BIOS. Визуально он начинается после заставки и диагностических экранов BIOS, а заканчивается примерно с появлением экрана «Загрузка Windows».
На этапе OSLoader:
- загрузчик Windows (winload.exe) загружает основные системные драйверы, которые необходимы для считывания минимально необходимого набора данных с диска
- затем загрузчик инициализирует систему до момента, с которого становится возможной загрузка ядра
- когда ядро начинает загружаться, winload.exe помещает в оперативную память системный раздел реестра и дополнительные драйверы, помеченные в качестве BOOT_START
Длительность этапа отражает значение параметра osLoaderDuration в узле timing XML-файла. Обычно, она в находится в пределах 2-3 секунд.
Этап MainPathBoot
Визуально этап MainPathBoot начинается с экрана «Загрузка Windows» и завершается при появлении рабочего стола. Если не настроен автоматический вход в систему, длительность этого этапа увеличивается за счет времени, которое требуется для ввода пароля.
Во время этапа MainPathBoot происходит основная работа по загрузке операционной системы:
- инициализируется ядро
- происходит определение устройств Plug and Play (PnP)
- запускаются службы
- выполняется вход в систему
- инициализируется Explorer, т.е. система готовится к загрузке рабочего стола
Этап состоит из четырех фаз, каждая из которых обладает собственными характеристиками и может по-своему влиять на длительность загрузки системы.
Фаза PreSMSS
Визуально фаза PreSMSS начинается примерно с экрана «Загрузка Windows», но ее окончание невозможно определить на глаз.
Фаза PreSMSS (в графическом представлении WPT она обозначена как Pre Session Init) начинается с инициализации ядра. Во время нее:
- ядро инициализирует структуры данных и компоненты, а затем запускает диспетчер PnP
- диспетчер PnP в свою очередь инициализирует драйверы BOOT_START, которые были загружены с помощью winload.exe на этапе OSLoader
- когда диспетчер PnP обнаруживает устройство, он загружает необходимый драйвер и выполняет его инициализацию
Диагностика
Если фаза занимает много времени, ищите в XML-файле в узле <PNP> драйвер, который долго загружается. Диагностику в графическом режиме я покажу на примере следующей фазы.
Фаза SMSSInit
Визуально начало фазы SMSSInit невозможно определить. Ее частью является пустой экран, который отображается между заставкой и экраном входа в систему, чье появление сигнализирует о завершении фазы.
Фаза SMSSInit (в графическом представлении WPT она обозначена как Session Init) начинается с того, что ядро передает контроль диспетчеру сессий (smss.exe). Во время этой фазы система:
- инициализирует реестр
- загружает и запускает устройства и вторую волну драйверов, которые не помечены как BOOT_START
- запускает процессы подсистемы
Фаза завершается с передачей контроля процессу winlogon.exe.
Диагностика
Наиболее распространенной причиной задержек в этой фазе являются драйвер видеокарты. Он инициализируется сначала во время системной сессии, а затем во время пользовательской. При этом инициализация во время пользовательской сессии занимает меньше времени, потому что в течение системной параллельно выполняется запуск других задач.
Сократив время запуска драйвера видеокарты, можно уменьшить длительность загрузки системы. Таким образом, если фаза SMSSInit затягивается, обновите драйвер видеокарты.
Более точную диагностику можно провести с помощью summary_boot.xml, где в узле PNP есть длительность запуска каждого драйвера. Впрочем, в Windows 10 он иногда отсутствует, и я не знаю, от чего это зависит и как это форсировать.
⚠ Показанного ниже графика Driver Delays в WPT больше нет, но во времена Windows 7 его можно было анализировать примерно так:
- На графике Boot Phases выделите фазу Session Init и выберите из контекстного меню команду Clone Selection. Выбранный период будет выделен на всех активных графиках.
- На графике Driver Delays щелкните правой кнопкой мыши и выберите из меню команду Set Delay Threshold. Она позволяет отфильтровать драйверы по времени задержки. Введите, например 2000, чтобы отобразить драйверы, загружавшиеся дольше двух секунд.
Вы увидите все драйверы, загружавшиеся в фазе Session Init дольше заданного времени. У меня вся фаза занимает 6 секунд, и двухсекундная задержка драйверов является нормальной. Но если у вас проблемы в этой фазе, с помощью фильтра вы сразу увидите, какой драйвер их вызывает.
Фаза WinLogonInit
Визуально фаза WinLogonInit начинается перед появлением экрана приветствия, а завершается перед появлением рабочего стола.
Фаза WinLogonInit начинается сразу после запуска winlogon.exe. Во время этой фазы:
- отображается экран приветствия
- диспетчер управления службами запускает сервисы
- происходит запуск сценариев групповой политики
Фаза завершается запуском оболочки Windows — процесса explorer.exe.
Диагностика
Во время фазы WinLogonInit выполняется множество параллельных операций. На многих системах она характеризуется нагрузкой на процессор и большим количеством операций ввода-вывода (I/O). Длительность фазы во многом зависит от поведения служб.
Чтобы обеспечить плавную загрузку системы, службы могут объявлять зависимости или использовать порядковые группы загрузки. Windows обрабатывает группы загрузки в последовательном порядке. Поэтому задержка даже одной службы в ранней группе может затягивать загрузку следующей группы служб и тормозить весь процесс загрузки.
Для выявления проблемной службы удобнее всего использовать графические возможности WPT. Откройте ETL-файл двойным щелчком мыши и прокрутите отчеты вниз до графика запуска служб.
Зачастую проблема вызвана не системными, а сторонними службами. На рисунке хорошо видно, что среди автоматически стартующих служб дольше всего загружаются три:
- Apache 2.2
- MySQL
- TeamViewer
При этом Apache блокирует загрузку следующей группы служб (очевидно, в ее отсутствие это сделала бы служба TeamViewer). Поскольку ни одна из этих служб не является системной, проблему легко решить. Можно в оснастке «Службы» изменить тип ее запуска на отложенный и посмотреть, будет ли она быстрее запускаться на более позднем этапе. Если это не дает эффекта, можно вовсе отключить службу и запускать ее вручную при необходимости. Во второй волне служб, имеющих отложенный тип запуска, видна задержка WSearch, отвечающей за поиск Windows, но я не стал ее трогать пока.
Чтобы увидеть время запуска каждой службы, щелкните точку начала запуска и растяните диапазон до ее конца. Для изменения масштаба графика крутите колесо мыши, удерживая нажатой клавишу CTRL.
Отключение трех вышеперечисленных служб позволило сократить общее время загрузки почти на 40 секунд! Обратите внимание, что группа автоматического запуска служб теперь стартовала намного быстрее (смотреть нужно относительно шкалы времени, т.к. масштаб графиков разный).
Wsearch все равно запускается дольше других служб, но уже всего 8 секунд вместо 30, что не дает мне достаточно оснований к ней придираться.
Если задержку вызывает антивирусная программа, отложенный запуск службы может понизить уровень защиты, а ручной запуск или отключение службы могут нарушить работу программы. В этом случае можно лишь посоветовать обновить антивирус до последней версии. Если это не дает эффекта, вам придется сделать выбор между любимой программой и длительностью загрузки.
Фаза ExplorerInit
Визуально фаза ExplorerInit начинается перед загрузкой рабочего стола, но ее окончание определить на глаз невозможно.
В фазе ExplorerInit:
- сначала запускается процесс explorer.exe
- затем система создает процесс диспетчера окон рабочего стола (DWM)
- DWM инициализирует рабочий стол и отображает его
Инциализация DWM и рабочего стола происходит на переднем плане, но в это же время в фоне диспетчер управления службами (SCM) запускает службы, а диспетчер памяти кеширует данные. Поэтому на многих системах эта фаза сопровождается нагрузкой на процессор, и нередко задержки при загрузке на этом этапе можно отнести на счет слабости аппаратных ресурсов.
Диагностика
В течение фазы ExplorerInit ресурсы процессора могут потреблять программы, работающие в качестве служб (например, защитные программы или серверы приложений). Они запускаются либо в этой фазе, либо продолжают свою загрузку, будучи запущенными в более ранних фазах. С другой стороны, некоторые службы (например, с отложенным запуском) могут быть еще не запущены на момент окончания фазы ExplorerInit.
Этап PostBoot
Этап PostBoot начинается после появления рабочего стола и завершается после того, как будет определено бездействие системы.
На этапе PostBoot рабочий стол уже загружен, и с ним можно взаимодействовать. Но при этом параллельно в фоне выполняется различная активность. Например, продолжается запуск служб и программ автозагрузки, что может сопровождаться появлением их значков в области уведомлений.
Средства WPT определяют бездействие системы по следующему алгоритму. Каждые 100 мс проверяется наличие активности в системе. Если бездействие системы составляет не менее 80% (за исключением низкоприоритетных процессов и дисковой активности), считается, что в этом интервале система бездействует. Проверка продолжается до тех пор, пока не наберется 10 секунд бездействия. Поэтому, определяя общее время загрузки системы, вычитайте из значения bootDoneViaPostBoot 10000 мс, т.е. 10 секунд.
Диагностика
На этапе PostBoot запускаются приложения, находящиеся в автозагрузке. Чтобы сократить длительность этого этапа, нужно навести там порядок. В графическом представлении WPT используйте график Process Lifetimes, чтобы увидеть все процессы, которые запускаются или продолжают запуск на данном этапе.
Безусловно, диагностика загрузки с помощью WPT требует навыка, и с наскоку разобраться в этом вопросе непросто. Но от вас и не требуется профессиональных знаний, поскольку текстовый отчет в XML файле вкупе с полным графическим представлением всех этапов загрузки позволяет быстро определить причину задержек при запуске Windows. Мне будет очень интересно узнать, полезна ли эта статья, помогла ли она выявить и устранить задержки с помощью WPT, а также насколько ускорилась загрузка системы в результате.
Valerii
Спасибо. Очень полезная статья и ссылка. Есть еще в Windows OPK OEM Setup Analyzer (OSA) — тоже позволяет оценить временные потери, но связанные с установкой-загрузкой.
Vadim Sterkin
Valerii, спасибо за отзыв! OSA, видимо, для ОЕМ-сборщиков предназначен. Но если б его использовали г-сборщики, хуже бы не стало :)
Viktor Golub
Спасибо, Вадим!
Весьма полезная информация… я бы даже сказал, одна из наиболее полезных статей, которые я прочёл за последнее время :)
Vadim Sterkin
Viktor Golub, спасибо за отклик. Я тоже считаю, что информация полезная :) Вооружившись статьей и WPT, можно выявить виновника задержек при загрузке, как бы глубоко он не окопался. Система хотя и пытается проводить нечто подобное, записывая отчет в журнал событий, но никак не дотягивает до детализации WPT.
Alexey
Спасибо за статью, очень интересно почитать. Может есть что-то похожее для WinXP?
Vadim Sterkin
Alexey, спасибо за отзыв. Я бы советовал вам переходить на 7 :) Для XP есть Bootvis. Майкрософт больше не предлагает его для загрузки со своего сайта, т.к. на многочисленных ресурсах он подавался под соусом «ускорения загрузки Windows XP», хотя цель его не в этом совсем. На софт-порталах валяется, найдете в гугле.
Alexey
На Win7 перейти железо не позволяет. Еще раз спасибо за bootvis, буду пробовать.
Parafin
Здравствуйте. Использовал вашу статью и пакеты для диагностики загрузки, выявил у себя проблему. При загрузке Win7 система около 1мин 10сек стоит на стадии «Запуск Windows» после чего вылетает анимированний логотип и продолжается нормальная загрузка. Так вот все отчеты показывают полное время загрузки 50-53сек. Значит проблема кроется не на этом этапе а раньше. Тоесть
этап MainPathBoot (начинается с экрана «Загрузка Windows» и завершается при появлении рабочего стола) занимает 50-53сек.
Этап osLoaderDuration (начинается после заставки и диагностических экранов BIOS, а заканчивается примерно с появлением экрана «Загрузка Windows») занимает 1,7сек. Получается что 1мин 10сек простоя происходят между этими этапами, как же вычислить что за тормоза такие. Обновил биос, при перезагрузке простоя не было, но уже после второй перезагрузки он появился опять. Подскажите как диагностировать что именно делает компютер эту 1мин10сек. Ведь все отчеты нормальные но получается что система от экрана «Запуск Windows» и до полной загрузки рабочего стола грузится 2мин. Буду благодарен за помощь. P.S. Траблов никаких нет, комп работает исправно.
Файл XML http://fileshare.in.ua/4181416
Vadim Sterkin
Parafin, ну и файлообменник… 5 табов с рекламой открыл в итоге, еще и ждать пришлось.
Ваш XML-файл не показывает проблем, о которых вы рассказываете:
Общее время загрузки 51 секунда, загрузка до рабочего стола — 28 секунд.
Приведите для начала отчет диагностического пакета. И чтобы было проще, предлагаю вам продолжить диагностику в форуме. Там по кр. мере можно прикреплять отчеты к постам.
bich
Vadim,
По поводу установки WPT: веб-установщик Windows 7 SDK не позволяет снять флажок с .NET Development — так и должно быть?
Vadim Sterkin
bich, возможно, этот компонент у вас уже установлен.
Николай
Спасибо Вам Вадим за такой замечательный блог, за такие полезные темы в нем. Познакомился сегодня с программой WPT, осталось приятное впечатление от ее использования.
Еще раз огромное Вам спасибо.
С уважением Николай
Vadim Sterkin
Николай, спасибо за отзыв! Я рад, что вы узнали много полезного :) Я для этого и веду блог.
Сергей
Вадим, а нет ли инструмента для анализа процесса выключения?
Vadim Sterkin
Сергей, вы держите его в руках. Используйте команду
Подробный рассказ будет когда-нибудь…
Сергей
Vadim, спасибо за подсказку — надо будет поэкспериментировать :)
ЁжЫГ
Вот в эту тему надо было кидать ссылку, а я промазал :-[
Исправляюсь:
ЁжЫГ
http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKPerformanceToolKit/wpt_x86.msi
прямая ссылка на WPT
либо я действительно тормоз, либо блог меня кидает куда попало :(
SergNe0
Это актуально для Win7 64 бит? ибо xbootmgr просто вообще не запускается как будто его и нет
Vadim Sterkin
Актуально. По умолчанию файл xbootmgr.exe должен быть в
Андрей
Подскажите пожалуйста почему у меня в командной строке выдает ошибку: xbootmgr не является внутренней или внешней командой
Vadim Sterkin
Андрей, я ответил вам в почте и добавил примечание в запись.
Геннадий
Спасибо за подробное и четкое объяснение. Загрузка длилась около 8 минут. При помощи анализа запуска нашел проблему — второй диск. name=»IDE\DiskExcelStor_Technology_J360_______________V22OA63A\5+34dac8c4+0+0.0.0″ type=»Device» activity=»Start» startTime=»2817″ endTime=»371761″ duration=»368944» prePendTime=»368944″ description=»Дисковый накопитель» friendlyName=»ExcelStor Technology J360 ATA Device» />
Проверки диска показывали его нормальную работу. Буду разбираться.
Теперь — меньше 2-х. Спасибо.
Vadim Sterkin
Геннадий, я рад, что вам помогло. Но такая длительная загрузка однозначно указывает на проблемы с железом, поэтому можно было не возиться с WPT, а отключать все лишние устройства :)
Евгений
SSD диск избавит Вас от длительной загрузки, даже с проблемами, а вот качество нужно настраивать самому. Поменьше мусора и побольше резервных копий — вот наша панацея! :)
Максим
Здравствуйте, Vadim.
Спасибо за статью. При появлением экрана входа (где надо вводить пароль), если не вводить пароль, до каких этапа или фазы произойдет загрузка? И сам этот ввод разбивает ли какие этап или фазу на как бы два(в отчете одно число) промежутка времени?
Vadim Sterkin
Максим, разве эта фраза в статье не отвечает на ваш вопрос?
Максим
т. е. winlogoninit не грузится?
Vadim Sterkin
Максим, ну как это не грузится? А как же тогда отобразится экран приветствия? :)
Максим
В 100 событии MainPathBootTime не увеличивается на время, кот. требуется для ввода пароля. Оно записывается в UserLogonWaitDuration. Я думаю bootDoneViaExplorer(MainPathBootTime) грузится до пароля(без авто входа), а postExplorerPeriod (BootPostBootTime) грузится после. Но с фазами WinLogonInit и ExplorerInit из вашей статьи не совсем понятно.
Vadim Sterkin
Максим, вы же спрашивали про фазы загрузки применительно к этой статье, а не про то, как записываются в событие 100 все промежуточные фрагменты загрузки. Я вам и отвечал в этом контексте.
Могу перефразировать — экран входа в систему отображается в фазе MainPathBoot на этапе WinLogonInit. Этап ExplorerInit не может начаться раньше, чем вы выполните вход в систему.
Максим
Vadim, спасибо за ответы. Дальше сам буду разбираться.
Руслан
Крайне важная статья, на мой взгляд.
Но у меня возникла проблема после запуска трэйса.
При перезапуске возник BSOD 0x000000c2 bad_pool_caller.
Винда восстановила при еще одной перезагрузке свое состояние, но данные так и не собрались. В логе отображается следующее:
Подскажите, что могло произойти. Спасибо.
Vadim Sterkin
Руслан, первая строка лога указывает на то, что у вас отключена служба Superfetch.
1. В командной строке, запущенной с правами администратора, выполните sfc /scannow
Если появится сообщение о невозможности восстановить файлы, прикрепите \Windows\Logs\CBS\CBS.log в архиве в форуме.
2. Приведите службы к стандартной конфигурации (REG-файлы в разделе Default Windows 7 Service Pack 1 Services Start Key) и перезагрузите систему.
3. Устраните проблемы с помощью CheckBootSpeed.
Если проблема не решится, отчет о проделанной работе и все остальные проблемы направляйте в эту тему форума.
Dmitrij
Dobryj den’!
Ne poslushal soveta sozdanija tochki vostanovlenija(da i odklucheny u menja tochki vosstanovlenija), nu i ne povezlo) BSOD
Kak vernut’ robotosposobnost’ sistemy iz pod Live Cd?
Zaranee spasibo!
Windows 7 sp1 x64
Vadim Sterkin
Дмитрий, ваш вопрос не имеет отношения к этой теме. Все проблемы с BSOD решаются только в форуме.
P.S. Не пишите больше транслитом тут, есть http://winrus.com/klava.htm
Dmitrij
Добрый день!
Я просто думал может уже разработана процедура одключения анализа, через реестр (winpe), при ситуациях подобной моей.
Все таки микрософт утилита, а не от «Яшки-Косого», хоть и понимаю что утилита не для всех:) У меня SSD 64gb и в целях экономии свободного места восстановление системы одключено. Винда блогаполучно отработала полтара года, не ожидал такого поворота событий!
Уже переустановил и все настроил, благо AppData осталась цела. Я понимаю, что там написано про RecoveryPoint, но mожет красным цветом и болшими буквами для всех любителей, таких как я:- Не исполизовать утилиту без RecoveryPoint! Если выключено то сначало включить! жаль не будет свободного времени отловить что происходит при xbootmgr -trace boot -traceFlags BASE+CSWITCH+DRIVERS+POWER
ИМХО проблема лежит в +DRIVERS
П.С. Дамп тоже не снять, т.к. файл подкачки одключон ибо 16гб+ssd нет такой необходимости:)
Sorry za translit:)
Vadim Sterkin
Дмитрий, почему я должен уродовать свои статьи красным жирным шрифтом из-за людей, которые не умеют читать?
Dmitrij
Ну полемизировать можно долго: чтоб не задавали ненужных вопросов на транслите, не уродовали комментариями статью, не грызли, ногти, локти, и прочие части тела, понимали всю серьёзность того, что имеют дело с программным обеспечением (возможно сырым), предназначенного скорее для программистов/девелоперов и иже с ними, и не будет больше пряников от мамы/клиента/начальника/друга, а будет головняк на пару часов — минимум, и пилюли пока не существует.
Ну да ладно, вы творец вам и венец!
За статью, кстати, спасибо большое!
Vadim Sterkin
Ок, с таким перечнем причин… я подумаю :)
Eduard
Добрый день. Как можно объяснить отсутствие Графикa Boot Phases после открытия файла: boot_BASE+CSWITCH+DRIVERS+POWER_1.etl-
Все остальные диаграммы и графики отображены.
Утилита запущена командой:
xbootmgr -trace boot -traceFlags BASE+CSWITCH+DRIVERS+POWER -resultPath C:\Trace
С Ув Ed
Eduard
Забыл указать версию:
Performance Tools Kit 4.1.1 (x64)
Vadim Sterkin
Попробуйте
xbootmgr -trace rebootCycle -prepSystem -resultPath C:\Trace
Посл. Версия 4.6, вроде.
Eduard
Vadim, спасибо за оперативный ответ. Команда
xbootmgr -trace rebootCycle -prepSystem -resultPath C:\desktop
( а я именно так вводил ), успешно отработала, но результата не выдала.
Точнее говоря, сообщение типа окошка «ждите» зависло, и висело минут пять, ядра проца не активны, по активности можно судить идет запись рез-та или нет. Пришлось процесс убивать в Task-Manager.
Но, в принципе, командами xbootmgr -trace boot,или
xbootmgr -trace boot -traceFlags BASE+CSWITCH+DRIVERS+POWER -resultPath C:\desktop , (последняя дает проанализировать загрузку драйверов), удалось увидеть процессы запуска, провести анализ не вслепую. Более того, у меня служба AMD FUEL Service, тормозила на 10 с запуск группы других служб, и, изменив Starttyp с Automatisch на Automatisch с задержкой, удалось выиграть эти десять секунд.
Бесспорно, утилита очень полезна.
Dizzy
У меня Win 7×64, и установлен WPT в составе Visual Studio 2012 и при запуске запуске я получаю BSOD причём всё время разный. Смог загрузить только F8+последняя удачная конфигурация.
Лог
Да, и совсем забыл сказать зачем оно мне понадобилось. Просто в один прекрасный момент время загрузки винды увеличилась в два раза. Утром выключил — вечером включил.
Утром:
BootTime 44357
MainPathBootTime 22957
Вечером
BootTime 92346
MainPathBootTime 39146
Dizzy
В общем помогла мне очистка папки Prefetch. Результат — рабочий стол появился через 23 сек — фантастика. Всю ночь промучился, а самый первый вычитанный совет не попробовал. Чуть мозги не сломал вникая в премудрости загрузки винды :\
После очистки папки Prefetch
BootTime 41615
MainPathBootTime 15315
BootPostBootTime 26300
Просто когда внезапно удвоилось время загрузки, так же внезапно значения BootPrefetchInitTime и BootPrefetchBytes стали равны нулю, а когда загрузка была в норме они были ненулевыми, после очистки папки они опять стали ненулевыми.
И еще в ветке Microsoft — Windows — ReadyBoost в событии 1015 всё было по нулям, а после очистки префетча всё пришло в норму —
Сводка производительности ReadyBoot:
Число операций чтения: 26371
Считано (байт): 617699328
Число попаданий в кэше: 19135
Попаданий в кэше (байт): 301388288
Процент попаданий в кэше: 0.725607675097645
Время предварительной выборки загрузки (мкс): 33725209
Предварительная выборка загрузки (байт): 421990400
Считано при предварительной выборке загрузки: 10843
Вывод — перед использованием WPT, в первую очередь очищайте папку Prefetch.
Сергей
Здравствуйте, Вадим.
У меня система грузится 100-120 сек.
Вот результаты проверки CheckBootSpeed:
Система загрузилась за 132 с, в т.ч. профиль за 0 с
Среднее время трех последних загрузок составляет 109 с
Время от появления рабочего стола до его полной готовности к работе составило 57 с,
на что могли повлиять 16 программ в автозагрузке.
Служба SuperFetch имеет тип запуска Auto и в настоящий момент Running
Кэширование загрузочных файлов с помощью ReadyBoot включено и работает в оптимальном режиме*
Служба ‘Дефрагментация диска’ имеет тип запуска Manual
Дефрагментатор выполняет оптимизацию загрузочных файлов
Служба ‘Планировщик заданий’ имеет тип запуска Auto и в настоящий момент Running
Запланированная задача дефрагментации включена
Последний запуск дефрагментатора Windows был 12/29/2012 14:29:47*
Системный раздел C: объемом 95,01 Гб имеет 65,19% свободного пространства
Компьютер работает под управлением Microsoft Windows 7 Максимальная 6.1.7601 64-bit
Установлен процессор Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz
Системе доступно 8109 Mb оперативной памяти
После установки Windows Performance Toolkit выявилась длительная загрузка драйверов csc.sys (156391ms), mup.sys (156391ms) и fltmgr.sys (156391ms), причем начало и конец загрузки у них совпадает.
После выполнения команды xperf /tti -i boot_BASE+CSWITCH+DRIVERS+POWER_1.etl -o summary_boot.xml -a boot файл для удаленной диагностики по почте или в форуме почему-то не создаётся, хотя окошко на мгновение появляется.
Что межете посоветовать?
Vadim Sterkin
Сергей, в консоли команду xperf выполняйте. Но сначала наведите порядок в автозагрузке (см. книгу).
Сергей
Спасибо, книгу я всю прочитал. Выполнил команду xperf из консоли. Файл summary_boot.xml теперь создан.
Отключил для эксперимента все программы в автозагрузке, кроме Касперского (KIS-2012). Вот результаты до:
Система загрузилась за 91 с, в т.ч. профиль за 1 с
Среднее время трех последних загрузок составляет 107 с
Время от появления рабочего стола до его полной готовности к работе составило 40 с,
на что могли повлиять 15 программ в автозагрузке.
и после:
Система загрузилась за 111 с, в т.ч. профиль за 1 с
Среднее время трех последних загрузок составляет 111 с
Время от появления рабочего стола до его полной готовности к работе составило 82 с,
на что могли повлиять 1 программ в автозагрузке.
Служба SuperFetch имеет тип запуска Auto и в настоящий момент Running
Кэширование загрузочных файлов с помощью ReadyBoot включено и работает в оптимальном режиме*
Служба ‘Дефрагментация диска’ имеет тип запуска Manual
Дефрагментатор выполняет оптимизацию загрузочных файлов
Служба ‘Планировщик заданий’ имеет тип запуска Auto и в настоящий момент Running
Запланированная задача дефрагментации включена
Последний запуск дефрагментатора Windows был 12/29/2012 14:29:47*
Системный раздел C: объемом 95,01 Гб имеет 64,96% свободного пространства
Компьютер работает под управлением Microsoft Windows 7 Максимальная 6.1.7601 64-bit
Установлен процессор Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz
Системе доступно 8109 Mb оперативной памяти
Не нашёл, как прикрепить к сообщению свой файл summary_boot.xml, поэтому вот на него ссылка:
http://letitbit.net/download/57220.5848ad1f157d54090a3988165f6b/summary_boot.xml.html
Да, у меня стоит ещё Windows XP на другом диске, но чтобы системы друг на друга не влияли, я в разделах реестра HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\Offline в обоих системах сделал невидимыми тома другой системы, иначе в Windows 7 пропадали точки восстановления при каждом запуске Windows XP.
Vadim Sterkin
Сергей, залейте ETL на skydrive.com.
Сергей
Вот ссылка:
https://skydrive.live.com/redir?resid=4534194869B1AE34!108&authkey=!ADq__My8vuDou-Y
Vadim Sterkin
Сергей, я выше просил ETL, а не выжимку в XML. И вообще, я не понимаю, к какому случаю относится этот лог. У вас 91 и 111 секунд в отчетах CheckBootSpeed, а в логе 144.
Просто сделайте отчет без мусора в автозагрузке.
Сергей
Извиняюсь за невнимательность, Вадим.
Вот новый отчёт проверки проверки CheckBootSpeed:
Система загрузилась за 89 с, в т.ч. профиль за 1 с
Среднее время трех последних загрузок составляет 115 с
Время от появления рабочего стола до его полной готовности к работе составило 54 с,
на что могли повлиять 2 программ в автозагрузке.
Служба SuperFetch имеет тип запуска Auto и в настоящий момент Running
Кэширование загрузочных файлов с помощью ReadyBoot включено и работает в оптимальном режиме*
Служба ‘Дефрагментация диска’ имеет тип запуска Manual
Дефрагментатор выполняет оптимизацию загрузочных файлов
Служба ‘Планировщик заданий’ имеет тип запуска Auto и в настоящий момент Running
Запланированная задача дефрагментации включена
Последний запуск дефрагментатора Windows был 12/31/2012 11:15:56*
Системный раздел C: объемом 95,01 Гб имеет 64,81% свободного пространства
Компьютер работает под управлением Microsoft Windows 7 Максимальная 6.1.7601 64-bit
Установлен процессор Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz
Системе доступно 8109 Mb оперативной памяти.
А вот ссылка на etl-файл:
https://skydrive.live.com/redir?resid=4534194869B1AE34!110&authkey=!AGGD0EoRKUvwXpg
Может дело в медленном винчестере (Western Digital WD10EZRX,
5400 об/мин)?
С наступающим Новым Годом!!!
Vadim Sterkin
Сергей,
Я не вижу у вас аномалий.
Медленный диск — это, безусловно, одна из причин медленного запуска. Он у вас утилизируется очень сильно.
Второй аспект — Касперский, который традиционно нагружает систему при запуске. Он у вас самый заметный по потреблению CPU (хотя это не является фактором), а также демонстрирует дисковую активность во время PostBoot.
Кроме того, я бы отметил три службы, которые долго стартуют:
• Поиск Windows (wsearch) — 14 сек
• Служба перечислителя переносных устройств (WPDBusEnum) — 9 сек
• Узел системы диагностики (WdiSystemHost) — 9 сек
Первой можно изменить тип запуска на «Вручную» и запускать из планировщика, отложенным способом. Если этим заниматься, то туда же можно отправить StarWind
Из необязательных процессов, запуск которых тоже можно отложить, я бы отметил только «C:\Program Files (x86)\GIGABYTE\EnergySaver2\des2svr.exe»
А так, у вас система несбалансированная. Мощный CPU, более чем достаточно памяти, а диск медленный. Сюда подходит SSD.
Сергей
Огромное спасибо за советы, Вадим!
Тимур Гатауллин
Здравствуйте.
У меня доступны не все виды графиков ( в частности, нет графика Этапы загрузки, Службы). Запускал из командной строки в точности как указано в статье (копировал код в cmd).
Скриншот https://www.dropbox.com/s/jwe5see4siu0cps/trace.JPG?dl=0
Подскажите, пожалуйста, как получить все графики?
Vadim Sterkin
Тимур, у вас произошел сбой и ETL не объединился (в заголовке окна в имени файла premerge).