Измерение времени загрузки ОС Windows
В прошлом номере (см. статью «Определение времени загрузки в ОС на базе Windows»),мы расскзали об особенностях измерения времени загрузки операционных систем на базе Windows Vista/7. На этот раз мы перейдем от теоретических выкладок к тестированию и сравнению показаний скорости загрузки ОС при использовании разных дисков. Прежде чем приступить к описанию методики тестирования, обсудим интересную информацию, опубликованную в Интернете. В предыдущей статье мы коснулись скорости загрузки ОС в новой, еще не вышедшей операционной системе Windows 8.
В ней применяется новый алгоритм, представляющий собой гибридный режим «сна» и гибернации основной системной сессии. И хотя новый алгоритм в предварительных тестах показал себя с лучшей стороны, так как хорошо выполнял возложенную на него функцию, он не лишен некоторых недостатков. Как оказалось на практике, при ускорении загрузки операционной системы на старых и новых системных платах возникает проблема с заходом пользователя в BIOS системной платы с целью изменения какихлибо параметров. При быстрой загрузке ОС Windows 8 период вывода на экран POST-сообщений и время между проходом BIOS и непосредственно загрузкой слишком мало, что в некоторых случаях не позволяет пользователю зайти в BIOS. В первую очередь данная проблема касается материнских плат с UEFI-интерфейсом, в которых применяется другой алгоритм запуска интерфейса системной платы и время его отображения весьма ограниченно. Однако инженеры Microsoft решили не отменять ранее принятые задержки при выключении и пошли другим путем — изменили способ перезапуска системы, который теперь позволяет взаимодействовать с UEFI-интерфейсом, благодаря чему пользователь может попасть в него. Для этого при перезапуске системы он должен выбрать дополнительное меню — перезапуск с заходом в UEFI-интерфейс. Увы, новых изменений в версии Windows 8 Consumer Preview пока нет, поэтому их нельзя «пощупать», проанализировать и понять, существует ли такая проблема на самом деле. Выпуск еще одной предварительной версии Windows 8 или полноценного релиза системы даст ответ на этот вопрос, а пока вернемся к текущей операционной системе Windows 7. Несмотря на положительные отзывы о Windows 8, 7-я версия будет актуальна еще как минимум несколько лет. Хотя она, может, и не продержится столько же, сколько Windows XP, которой многие пользуются до сих пор.
Как мы уже отмечали в предыдущей статье, особое внимание при загрузке системы стоит уделить именно времени загрузки приложений пользователя, а не старту системы в целом до процесса инициализации рабочего стола пользователя. Объяснение здесь довольно простое: для того чтобы оценить время загрузки отдельного ПК, правильнее начинать отсчет времени только после того, как все приложения пользователя будут запущены, а система будет находиться в «ждущем» режиме. К примеру, на чистой операционной системе скорость загрузки между двумя разными компьютерами с похожими конфигурациями, но с разными типами дисков SSD и HDD в большинстве случаев будет примерно одинаковой, что и подтвердили наши тесты. Чтобы оценить преимущества использования того или иного диска, необходимо имитировать настоящий рабочий компьютер с кучей дополнительных приложений и сервисов. Более того, пользователю, который пытается измерить время загрузки операционной системы, важнее получить универсальное средство определения загрузки системы, а не ее отдельных элементов.
Проанализировав возможные способы, мы пришли к выводу, что оценить время загрузки операционной системы можно лишь с помощью специального приложения, которое запускалось бы вместе с сессией пользователя и анализировало поведение системы при загрузке остальных приложений. Поэтому мы и создали такое приложение, которое отвечало бы нашим критериям для запуска. Понятие отзывчивости системы после запуска довольно расплывчато, но в то же время может быть определено с большой долей вероятности с помощью программного метода. Нередки случаи, когда пользователь, увидев свой рабочий стол, не может запустить ни одного приложения. Это объясняется тем, что система, несмотря на прорисовку всех элементов рабочего стола, продолжает подгружать программы и элементы приложений, описанных в автозапуске. Определить, когда система будет полностью готова к действиям пользователя, можно путем анализа текущей очереди задач процессора и основного жесткого диска. Проще говоря, исходя из степени загруженности центрального процессора и системного диска, можно оценить готовность системы для работы.
В операционных системах Windows Vista и 7 существует несколько этапов автоматической загрузки приложений пользователя. В реестре ОС есть три основные записи об автозагрузке приложений в ветках, а помимо них имеются две папки автозапуска, хранящие символические ссылки, которые позволяют автоматически запускать приложения при загрузке системы. Кроме элементов автозагрузки, существует и несколько скрытых возможностей по автоматическому запуску приложений, которыми в основном пользуются вирусописатели. Все приложения из автозагрузки начинают загружаться одновременно при активации пользовательской сессии, то есть после загрузки рабочего стола. Узнать точно, какой элемент будет загружаться первым, нельзя, так как они стартуют с разницей всего в несколько микросекунд.
К счастью, компания Microsoft внедрила в свои операционные системы своеобразный таймер запуска, который инициализируется, по всей видимости, в начале загрузки основной системной сессии. В англоязычном варианте операционной системы параметр времени запуска операционной системы называется System Boot Time. В русскоязычной версии он носит название «Время загрузки системы». Если со временем старта системы всё довольно просто, то выявление времени готовности операционной системы к действиям пользователя сопряжено со многими трудностями. На наш взгляд, точно определить время готовности ОС в этом случае невозможно. Можно лишь зафиксировать тот момент, когда операционная система перестает запускать приложения, описанные в автозапуске, и переходит в своеобразный «ждущий» режим. В данном случае под «ждущим» режимом мы подразумеваем момент, когда приложения не задействуют системный диск, а нагрузка на процессор составляет не более 5%. Отметим, что на современных системах загрузка процессора в таком режиме вообще может опускаться до 1-2%. Для определения производительности этих компонентов — процессора и диска — в операционных системах на базе Windows есть специальные счетчики производительности. О них мы упомянули в прошлой статье, поэтому здесь только отметим, что наш скрипт использовал именно эти данные. Показания счетчиков производительности можно получить не только через описанную оснастку, но и через специальные запросы к базе данных Windows Management Instrumentation (WMI). WMI — это инструментарий управления Windows, то есть одна из базовых технологий для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows. В ней находится масса данных о состоянии компьютера, а доступ к ней можно получить через запросы языка VBA или других аналогичных, которые могут задействовать API операционной системы.
Методика тестирования
Для того чтобы проанализировать время загрузки операционной системы, мы написали небольшой скрипт, использующий основные алгоритмы, изложенные в ранее опубликованной статье. Поскольку типовых утилит анализа времени загрузки пользовательской сессии попросту нет, мы использовали показания счетчиков производительности процессора и системного диска, которые отражают текущую очередь задач, поставленных перед ними операционной системой.
С помощью нашего скрипта, написанного на языке Autoit, в реальном времени считывались и анализировались данные счетчиков. Если текущая очередь задач и к процессору, и к системному диску была нулевой на протяжении 3 мин — значит, система вошла в режим простоя и все пользовательские приложения и сервисы успешно загружены и работают в фоновом режиме. Соответственно засекается время старта системы, исходя из показаний счетчика «Время загрузки» в ОС. Разница во времени между датой начала простоя и датой начала загрузки операционной системы и есть то самое время загрузки системы с учетом загрузки и подгрузки всех установленных приложений. Внимательный читатель, установивший немало программ, может поспорить, что некоторые приложения типа Skype, Mail Агент и других, которые загружаются в последнюю очередь и запрашивают информацию из Интернета, могут внезапно начать грузить систему через некоторое время после вроде бы успешной загрузки пользовательской сессии. На самом деле это ложное впечатление, и проведенные тестирования выявили, что подобные программы в процессе активной работы так или иначе влияют на показатели счетчиков, что обязательно отражается на времени загрузки в нашем скрипте.
Для тестирования мы использовали стенд следующей конфигурации:
- процессор — Intel Core i7-3960Х;
- системная плата — Intel DX79SI;
- чипсет системной платы — Intel X79 Express;
- оперативная память — четыре модуля DDR3-1600 (объем 8 Гбайт);
- режим работы SATA — AHCI;
- контроллер диска — интегрированный в чипсет контроллер SATA 6 Гбит/с;
- видеокарта Sapphire Radeon HD6570.
В качестве системного диска мы применяли следующие модели:
- Western Digital WD1002FAEX объемом 1 Тбайт;
- Seagate Barracuda ES.2 (ST3500320NS) объемом 500 Гбайт;
- Intel SSD 520 объемом 240 Гбайт;
- Plextor PX-256M3 объемом 256 Гбайт.
Тестирование проводилось под управлением операционной системы Windows 7 x64 SP1, которая устанавливалась на каждый из вышеописанных дисков. Тестирование было проведено при двух вариантах загрязненности системы. Первоначально оно выполнялось в тот момент, когда система была только установлена и в нее были установлены только драйверы для всех периферийных устройств. Таким образом, мы могли получить данные о времени загрузки «чистой» системы.
Наверное, многие пользователи сталкивались с тем, что со временем операционная система начинает загружаться всё медленнее. Чем больше программ и различных приложений установлено на компьютере, тем дольше система грузится. Более того, время отклика системы на действия пользователя напрямую зависит от количества и качества установленных приложений. Объясняется это тем, что многие приложения не только занимают место на диске, но и заносят информацию о себе в различные реестры операционной системы. При этом неважно, какие это будут записи — об ассоциации конкретных файлов с этим приложением, автозапуске некоторых модулей либо другая информация, так как при загрузке ОС все эти данные так или иначе проверяются и повторно записываются в реестре ОС. Соответственно чем больше таких записей, тем дольше грузится операционная система, поскольку реестр, как и любая другая база данных, с увеличением хранимой в нем информации, а также расширением структуры данных медленнее отзывается на любые запросы. Оптимальным способом решения данной проблемы является одно популярное, но в то же время проблемное для многих пользователей действие — удаление и новая установка операционной системы. Поэтому, чтобы имитировать старую систему, после первого теста на системный диск были установлены два набора приложений, а именно наши игровые скрипты GameScripts 6.0 и набор приложений для тестирования производительности современных ПК — Scripts 10.0. Список приложений в этих скриптах уже не раз был описан в нашем журнале, поэтому отметим лишь, что все они относятся к наиболее часто применяемым большинством пользователей. Кроме того, были установлены программы Steam, Mail Агент и Skype, а сам стенд был подключен к Интернету. Поскольку набор установленных программ всегда был одинаковым, а другие изменения в систему не вносились, можно сравнить время загрузки систем с разными типами системных дисков. Идентичность установленных программ на обоих этапах позволяет сравнить показатели времени загрузки ОС в правильном ракурсе.
Результаты тестирования
На диаграммах (рис. 1 и 2) представлены не только графики, построенные на основе полученных данных, но и значения времени загрузки операционной системы в секундах. В первом тесте система перезагружалась девять раз, во втором — 20. Большее количество перезагрузок дало больше данных для анализа и построения. Как видно из таблицы и диаграмм, на «чистой» операционной системе жесткий диск Western Digital 1002FAEX в большинстве случаев опережает по скорости загрузки своего твердотельного собрата Plextor PX-256M3.
Рис. 1. Время загрузки «чистой» ОС
Рис. 2. Время загрузки «грязной» ОС
Наряду с этим на графике времени загрузки «грязной» ОС твердотельный диск Plextor обходит традиционный жесткий диск. Соответственно наше предположение, что сравнение двух «чистых» операционных систем без установленных приложений не отражает реальную картину времени загрузки, верно. Более того, чем больше приложений будет установлено и чем больше из них будут задействовать алгоритм автозапуска модулей, тем сильнее будет ощущаться разрыв во времени загрузки пользовательской сессии при использовании различных типов дисков. В то же время разница во времени между загрузкой и применением традиционного жесткого диска и SSD не столь велика, как пытаются уверить нас производители твердотельных дисков. Да, безусловно, разница в минуту наблюдается на «грязной» системе, однако компьютер грузится еще дольше, чем ОС. Появление нового типа загрузки в ОС Windows 8 по идее должно полностью устранить наигранную проблему времени загрузки операционной системы как таковую, поэтому, как только представится такая возможность, мы исследуем время загрузки операционной системы Windows 8 и проанализируем полученные результаты.