В сегодняшней статье мы поговорим о работе, которую ведут разработчики Windows 7 с целью сократить время загрузки ОС. И в Windows 7 разработчики намерены сократить эту характеристику до 15 секунд.
Это первая публикация старшего сотрудника команды разработки Windows 7. Позвольте мне представить Майкла Фортина (Michael Fortin), являющегося одним из самых заслуженных инженеров Microsoft и ведущим инженером команды Fundamentals, входящей в состав группы Core Operating System. Майкл отвечает за производительность и надежность платформы Windows.
Для Windows 7 мы организовали команду, чья работа целиком и полностью посвящена производительности ОС при загрузке, однако, задачи этой команды выходят далеко за пределы Windows. Кроме того, многие из наших партнеров тесно сотрудничают с нами, поэтому всех их тоже можно считать логическим продолжением нашей команды.
Под загрузкой мы понимаем одно из трех понятий: загрузка ОС, пробуждение из режима сна (sleep) или выход из режима глубокого сна (гибернации, hibernate). Несмотря на то, что время выхода из режима сна, как правило, стандартно и обычно равняется от 2 до 5 секунд в зависимости от времени запуска устройств и приложений, в данной публикации мы поговорим о загрузке как о фундаментальном понятии, о котором частенько упоминают пользователи. Что касается Windows 7, то одной из основных задач разработки стоит существенное увеличение количества компьютеров с минимальным временем загрузки. В нашей лаборатории хорошей считается система, загрузка которой занимает менее 15 секунд.
Для того чтобы компьютер загружался быстрее, требуется чтобы эффективно и с высокой степенью параллелизма выполнялись следующие действия:
- Запись файлов в память;
- Инициализация служб;
- Опознание и запуск устройств;
- Аутентификация пользователя при загрузке;
- Создание и отображение рабочего стола;
- Запуск автоматически загружаемых приложений.
Ввиду того, что существуют различные конфигурации компьютеров, время загрузки также может существенно отличаться. Это подтверждается результатами, полученными нашими различными лабораториями, но это можно видеть и из результатов исследований, выполняемых независимыми журналистами, как, например, Эд Ботт (Ed Bott). Результаты исследований Ботта показывают, что лишь у 35% компьютеров время загрузки составляет менее 30 секунд. Несмотря на то, что в исследовании Ботта задействовано не так много компьютеров, его результаты совпадают с нашими. Статистика по Windows Vista SP1, приведенная ниже, также показывает, что более 35% систем загружаются за 30 и менее секунд, а на загрузку 75% систем требуется 50 и менее секунд. Это реальная статистика, собранная среди миллионов пользователей Vista SP1, принимающих участие в программе Customer Experience Improvement Program.
C нашей точки зрения уж слишком малое количество систем, загружается быстро, поэтому наша задача - увеличить их число. Безусловно, что в системах со временем загрузки более 60 секунд требуются радикальные изменения, при этом неважно, кто виноват в низкой производительности - устройства, сеть или установленные приложения. Как видите, есть системы, время загрузки которых непомерно велико. Столь заметная разница в производительности является результатом огромного выбора конфигураций и различий в качестве компонентов. Для работы ОС крайне важны задачи обслуживания, но они порой приводят к увеличению времени загрузки. Если пользователь решает установить большое по объему обновление, то реальное обновление системы может произойти при следующей загрузке, что может негативно сказаться на времени загрузки. Собранная нами статистика подтверждает этот факт, когда на запуск ОС после серьезного обновления, к сожалению, уходят минуты. Независимо от причины, мы, как элементы компьютерной экосистемы, обязаны исправить проблему с длительной загрузкой компьютеров.
И в исследовании Ботта и в нашей статистике время загрузки отражает факт готовности системы к работе. Сюда входит и авторизация, и загрузка рабочего стола. Это не идеальная метрика, но она охватывает достаточно много аспектов. В компьютерах под управлением Windows 7 и Vista данная метрика собирается автоматически и хранится в логе системных событий.
Мы осознаем тот факт, что пользователи под временем загрузки понимают и прекращение обращений к жесткому диску, и полную готовность меню Start и всех приложений к работе. Следует понимать, что значительное влияние на время загрузки оказывают пост-загрузка (когда запускаются приложения из группы автозапуска и службы с отложенной загрузкой), а также время загрузки BIOS с последующей инициализацией загрузки Windows. И предпринимаемые нами усилия учитывают мнение наших пользователей.
Перед тем, как перейти к обсуждению наших целей при разработке Windows 7, хотелось бы отметить, что мы работаем в этом направлении с нашими партнерами. При изучении различных систем мы обнаружили уйму областей, где возможно внести изменения для увеличения производительности. Нижеприведенные данные получены на реальном компьютере. Компьютеры, попадающие в наши руки прямо с полок магазинов, загружаются в течение приблизительно 45 секунд. Выполнение чистой установки Vista SP1 позволяет сократить время загрузки того же самого компьютера до 23 секунд. Очевидно, что при чистой установке существенно ниже количество запущенных процессов, да и версии драйверов могут отличаться. Тем не менее, нам удалось оптимизировать полученную с полки магазина систему, сократив время загрузки до 21 секунды, что на 2 секунды меньше, чем при чистой установке. Этого удалось добиться за счет изменений в конфигурации драйверов и BIOS.
В дополнение к сокращению времени загрузки ОС нам удалось сократить время выхода из режима сна до 2 секунд, сделав его практически незаметным для глаз. Именно поэтому мы рекомендуем нашим пользователям в качестве альтернативы обычной загрузке использовать режим сна.
В Windows 7 мы ведем работу над системными устройствами. Мы намерены в значительной степени сократить их число, равно как и их нужды в ресурсах CPU, потребности в обращениях к дискам и памяти. Наша идея очень проста: если без службы можно обойтись, то ее незачем запускать, но должен существовать некий пусковой механизм (триггер), который должен включать службу в тех редких случаях, когда она действительно нужна.
Конечно же, любая из служб призвана в какой-то степени дополнить возможности пользователя, даже самые невостребованные. Представьте ситуацию, когда к компьютеру подключается новая клавиатура, мышь или иное устройство ввода в тот момент, когда компьютер выключен. Если подключенное устройство не определилось, а драйвера не были установлены, пользователь попросту не сможет авторизоваться в системе и, как следствие, не сможет приступить к работе. Для какого-то пользователя подобная ситуация может не произойти ни разу за всю жизнь. Но для популяции, представленной сотнями миллионов пользователей, такая ситуация может происходить настолько часто, что в систему следует добавить механизмы, позволяющие избавить их от таких ситуаций. В Windows 7 мы намерены поддержать этот и другие сценарии с гораздо меньшим количеством автоматически загружаемых служб и добавлением более сложных механизмов — триггеров состояний.
Как сказано выше, инициализация устройств и драйверов может оказать существенное влияние на время загрузки. В Windows 7 мы делаем ставку на параллельную инициализацию драйверов. Это позволит избежать ситуации, когда более медленные устройства/драйвера могут негативно отразиться на общей производительности системы.
В смысле чтения с диска в Windows 7 внесены изменения в логику и механизмы "предварительной выборки" (от англ. prefetching), которая была введена в Windows XP. Поскольку нынешние диски отличаются по производительности, логика планирования подверглась некоторым изменениям, делающим технологию более эффективной. Ради интереса мы включили механизм выборки на гибридных дисках с целью оценить, а нужна ли она им. Анализ и реальные показатели производительности, полученные с различных систем, позволяет нам определить пределы, в которых мы сможем эффективно использовать технологию предварительной выборки.
В Windows 7 будут улучшены инструменты диагностики. Наша задача - быстро идентифицировать проблемы конкретных систем и обеспечить поддержку в их устранении. Мы искренне верим, что это является подходящим способом информирования пользователей о существующих в системе проблемах, как, например, чрезмерное количество автоматически загружаемых приложений или присутствие различного рода скриптов, предполагающих аутентификацию в домене. Многие пользователи знают о том, что большое количество автоматически запускаемых приложений может увеличить время загрузки системы. Некоторые пользователи, однако, сталкивались с проблемными загрузками при использовании сценариев входа в систему. В Windows XP, Vista и в Windows 7 система загружает рабочий стол, не дожидаясь продолжительных сетевых инициализаций. В корпоративной среде, однако, существует возможность изменить это поведение. К сожалению, при настройке клиентских компьютеров на запуск сценариев администраторы доменов, как правило, блокируют эту возможность. В результате на загрузку и авторизацию могут уходить минуты в случае, если в сети существуют проблемы с аутентификацией на сервере. Кроме того, эти сценарии запускают корпоративные приложения, которые активно потребляют ресурсы процессора, памяти и дисковое пространство.
В дополнение к той работе, которую мы ведем над различными функциями и службами Windows 7, мы делимся своими инструментами оценки, методиками и полученными результатами с партнерами. Собственно, инструменты доступны и энтузиастам. Инструменты, используемые нами для тестирования и корректировки проблем с загрузкой, доступны к свободной загрузке с сайта MSDN как часть Windows Performance Toolkit. Несмотря на то, что данные инструменты не подойдут для нужд большинства пользователей, для некоторых они могут оказаться весьма полезными.
Еще одна тема, которую мы хотели бы обсудить в будущем и которой посвящено немало комментариев, — это роль, которую играет дополнительное ПО в общей системной производительности Windows. Наличие множества приложений для Windows на деле означает, что, к сожалению, далеко не все программные продукты обладают высоким качеством, хотя, безусловно, основная масса продуктов выпускается с высоким качеством кода. Microsoft продолжит снабжать разработчиков инструментарием для создания высокопроизводительного программного обеспечения, а конечных пользователей - инструментами для обнаружения приложений, негативно сказывающихся на общей производительности системы. Windows сама по себе тоже должна совершенствоваться в плане тактики информирования пользователей о программном обеспечении, использование которого может привести к снижению производительности системы.
Еще одной темой для разговора является возможность внесения пользователями изменений в конфигурацию системы. Многие из предложенных изменений по сути бесполезны. Практика показывает, что большинство предлагаемых "твиков реестра" являются фикцией. Вот один из моих любимых примеров. Если провести поиск по фразе "Enable Superfetch on XP", поисковая система выдаст массу результатов. Могу вас заверить, что в Windows XP нет функции Superfetch, поэтому в ключах реестра, о которых упоминается на тех сайтах, попросту нет никаких значений. Наряду с подобными мифами в сети можно встретить множество рекомендаций, касающихся планирования процессорного времени, управления памятью и иными изменениями в конфигурации системы, которые на самом деле не могут увеличить производительность.
Время загрузки - это всего лишь один из многих аспектов производительности. И как было сказано в предыдущей статье, в будущем мы хотим продолжить этот разговор. Поэтому и спрашиваем, о каких других элементах производительности вы хотели бы узнать больше?
Комментарии (0)