Кондуктор нажал на тормоза.

Автор: Киви Берд
Опубликовано в   журнале "Домашний компьютер" №2 от 5 февраля 2008 года

Год, прошедший со времени выхода Windows Vista на рынок, был вполне достаточным сроком для обстоятельной оценки плюсов и минусов новой операционной системы Microsoft. По итогам этой оценки, один из наиболее известных в мире компьютерных журналов, к примеру, назвал Vista «главным техническим разочарованием 2007 года». В другом месте, солидной софтверной фирме в США, аккуратно сравнили скорость работы Vista, улучшенной только что выпущенным релиз-кандидатом сервис-пака SP1, с аналогичными показателями предыдущей ОС XP SP2. И установили, что в условиях одних и тех же машин/приложений «старая» XP уверенно и заметно превосходит новую Vista по ключевым показателям производительности. Из чего возникает, как говорится, естественный вопрос…

Что, собственно, происходит?

Ответов на этот простой вопрос много. Даже чересчур, пожалуй, много. Во-первых, скажут вам, ОС Vista просто больше, чем Windows XP. Она насыщена множеством полезных фоновых сервисов, которые индексируют документы, оптимизируют жесткий диск, ищут вредоносные программы, делают резервное копирование и тому подобные вещи. Под все это хозяйство Vista изначально забирает оперативной памяти в три раза больше, чем XP, а когда и ее начинает не хватать, запускаются интенсивные обмены с кэшем жесткого диска. Что, конечно же, сразу отражается на снижении производительности.

Во-вторых, различия в скорости работы существенно отличаются для разных типов сравнительных испытаний. Например, скорость обычных математических вычислений для обеих систем примерно одинакова. Достаточно близки показатели для сложной 3D-графики, причем здесь Vista иногда даже способна немного обгонять XP. Но вот что касается простых графических приложений, вроде обычного прокручивания окна с текстом или построения элементарных линий и фигур, то здесь XP может превосходить «Висту» по скорости и в два, и даже в четыре раза. Особенно сильно это заметно при сравнении на стандартных офисных приложениях, вроде программ из пакета MS Office. Объясняют это повышенным вниманием к красоте представления графики в Vista с опорой на новую продвинутую библиотеку программ DirectX. Обладающих, естественно, повышенными требованиями к памяти и ресурсам процессора.

В-третьих… Впрочем, вместо скучного перечисления всевозможных причин, в качестве куда более живой и наглядной иллюстрации проблемы уместно привести одну из дискуссий пользователей Vista на официальном веб-форуме корпорации. Эта дискуссионная ветвь ныне насчитывает беспрецедентно огромное число — свыше полутысячи — выступлений и без перерывов длится уже целый год. Причем, хотя официально проблема, породившая обсуждение — «Очччень медленное вычисление времени, требующегося на перемещение, уничтожение и копирование файлов» — модераторами форума давно помечена как «решенная», в действительности это далеко не так. Чтобы убедиться в обратном, достаточно почитать последние выступления, датируемые зимой 2008 года.

Изначальная суть претензий пользователей в данном случае довольно проста и сводится примерно к таким вопросам: «Почему в системе Vista уходит вечность на то, чтобы уничтожить (навсегда или помещением в мусорную корзину) и скопировать файлы? Сама операция, похоже, не занимает особо много времени, но почему вычисление остающегося времени подвешивает процесс на непостижимо долгий период, который к тому же нельзя остановить?»

Внешне отмеченный дефект очень похож на обычную ошибку программирования, особенно если принять во внимание те умопомрачительные цифры, что выдает порой программа относительно оставшегося времени своей работы — сотни, тысячи и даже десятки тысяч дней. Однако официальных разъяснений от Microsoft по поводу данного бага за прошедший год так и не получено. Несколько раз выпускались хотфиксы и апдейты к Vista, призванные вроде как решить эту казусную оплошность. Но не далее как в конце декабря 2007 разные сетевые издания опубликовали скриншоты ОС Vista, которая после всех рекомендованных модернизаций по-прежнему может выдавать при копировании больших файлов и массивов сообщения типа таких: «Осталось 48 167 дней и 23 часа»… Реально времени затрачивается, конечно, существенно меньше. Но все равно процесс остается оч-ч-чень медленным.

Виноват быстрый поиск?

Прогнозы Гутмана

Возможно, кому-то это покажется странным, но неприлично заторможенная работа новейшей ОС Vista уверенно прогнозировалась некоторыми знающими специалистами еще до выхода системы на рынок. Так, в конце 2006 года известный новозеландский эксперт по компьютерной безопасности Питер Гутман опубликовал в Сети обстоятельное исследование-предупреждение под названием «Анализ затрат на защиту контента в ОС Windows Vista». О содержании и ключевых выводах этой работы рассказывалось в ДК #2_2007 («Война без победителей»), поэтому здесь уместно напомнить лишь суть прогноза.

Проанализировав техническую документацию корпорации Microsoft и сопоставив ее с достоверными комментариями, неофициально полученными от знакомых разработчиков в личных беседах, Гутман сделал крайне негативные выводы о новой ОС Windows Vista. Ибо базовые основы этой системы существенно переработаны и усложнены во имя надежной и всесторонней защиты так называемого «высококачественного контента» и борьбы с нелегальным копированием файлов. Непрерывное обеспечение этой защиты и многочисленные дополнительные средства контроля влекут за собой весьма значительные затраты в самых разных аспектах, но особенно в том, что касается производительности и стабильности системы. При этом, как развернуто доказывало исследование Гутмана, защитные инициативы Microsoft по сути своей противоречат естественным законам физики и в принципе не могут привести к успеху.

А потому самое краткое резюме автора к своему аналитическому эссе было сформулировано в таких словах: «Спецификации защиты контента в Vista очень хорошо подходят под определение «самой длинной в истории предсмертной записки самоубийцы».

Сильно затянувшаяся история с исправлением очевидного дефекта порождает естественные подозрения в том, что оглушающая тишина со стороны Microsoft по данному поводу означает, скорее всего, трудности принципиального характера. То есть похоже на то, что ремонт одного недостатка сломает нечто другое. И этим другим, о чем MS так не хочется говорить публично и с деталями, наиболее вероятно, являются многочисленные функции DRM (управления цифровыми правами), встроенные в Vista для контроля за всеми процессами копирования и переноса файлов. Но, при отсутствии какой-либо достоверной информации на данный счет от разработчика, всем прочим остается лишь предполагать реальные масштабы проблемы. И фиксировать внешние признаки ее проявления.

А признаков таких довольно много. Вот, к примеру, как выглядит список регулярных «тормозов Висты» по наблюдениям одного из сетевых администраторов, принимавших участие в обсуждениях на страницах веб-форума Microsoft. Перечисленные проблемы возникают регулярно на Vista-компьютерах — нельзя сказать, что всегда, но, по грубым оценкам, в 50–75% случаев. «Тормозами» здесь считаются такие задержки в работе, которые по сравнению с XP Pro возросли от как минимум двукратного замедления до нескольких минут на выполнение совершенно обычных штатных операций. Итак:

Во время всех перечисленных задержек компьютер явно и активно чем-то занят, затрачивая на это значительные ресурсы процессора. Однако увидеть, что происходит, пользователь не может. Но для всякого, кто имеет некоторый опыт работы с компьютерами, вполне очевидно, что все перечисленные задачи должны, вообще говоря, выполняться быстро и не требовать сколь-нибудь значительных вычислительных ресурсов.

Справедливости ради надо отметить, что отнюдь не все из упомянутых проблем напрямую связаны с DRM-контролем за файлами. Так, одним из наиболее простых способов повышения производительности Vista-машины вообще и «Проводника» в частности стало отключение сервиса быстрого поиска Windows Search. Эта служба, включенная по умолчанию, обеспечивает постоянное индексирование и кэширование файлов, электронной почты и прочих данных, подвергающихся модификации. По предположению разработчиков, отключение этого сервиса делает «Проводник» менее функциональным, а поиск нужных файлов медленным и неэффективным. На деле же, по свидетельству множества пользователей, все происходит с точностью до наоборот. По крайней мере, с точки зрения борьбы с тормозами при файловых операциях.

Вот как выглядит один из вариантов — через командную строку — отключения сервиса Windows Search. Нажать комбинацию клавиш Win+R, набрать cmd, кликнуть ОК. В появившемся окне командной строки набрать services.msc и нажать Enter. В экране управления аккаунтом пользователя, UAC, кликнуть «Продолжить» для открытия окна консоли управления службами. В списке сервисов опуститься до Windows Search, там правой кнопкой мыши вызвать меню и выбрать «Свойства», где нажать кнопку «Стоп», а для типа запуска выбрать «Отключено» и нажать ОК. После чего остается лишь закрыть все открытые окна. Перезагрузка системы не требуется.

По свидетельству многих пользователей Vista, подобная цепь манипуляций очень заметно ускоряет работу системы и разгружает процессор. Однако, как показала практика, отключение одного лишь сервиса Windows Search помогает не всем и далеко не всегда.

Виновато дросселирование?

В августе 2007 появилась кое-какая новая информация относительно того, что еще может тормозить передачу файлов в «Висте». Один из системных гуру Windows, Марк Руссинович (многие годы независимый эксперт, а с конца 2006 штатный сотрудник Microsoft), в своем блоге подтвердил, что простым воспроизведением медиафайлов пользователи могут очень ощутимо снижать пропускную способность сети.

Падение производительности происходит из-за новой, встроенной в ядро Vista подсистемы контроля под названием MMCSS. Что расшифровывается как Multimedia Class Scheduler Service или «Служба планировщика заданий класса мультимедиа». Назначение этого сервиса — автоматически обеспечивать приоритетное выделение ресурсов для гладкого воспроизведения аудио- и видеофайлов, дабы не допускать перескоков, помех/искажений и прочих неприятных сбоев. К сожалению, как объясняют теперь разработчики, итогом этой инициативы стало средство для решения несуществующей проблемы, которое одновременно породило ощутимые затруднения для работы машин в сети.

Согласно многочисленным свидетельствам, даже воспроизведение совершенно несущественных аудиофайлов — скажем, характерных звуков, сопровождающих выдачу сообщений ОС об ошибках, — иногда может снижать пропускную способность локальной сети примерно вдвое. Похожее замедление в передаче файлов могут вызывать и фоновое воспроизведение музыки с помощью плееров iTunes или Real Player, и какая-нибудь простенькая игра со звуковым сопровождением.

Следует особо подчеркнуть, что в объяснении Руссиновича затронута только тема пропускной способности сети и не упоминается проблема с «долгим прощанием Висты», то есть жутко тормозным уничтожением и переносом/копированием файлов внутри компьютера. Однако, его комментарии дают общее представление о том, как появляются подобные дефекты. (Некоторые полагают, что это объяснение «развенчивает конспирологическую теорию» о чересчур избыточных DRM-проверках файлов в «Висте», однако фактов для подобного вывода явно маловато.)

Согласно Руссиновичу, разработчики «Висты» предполагали, что насыщенный сетевой трафик может существенно оттягивать системные ресурсы компьютера, коль скоро появление каждого нового пакета порождает прерывание в работе процессора. Поэтому предусмотрительные люди в штаб-квартире Microsoft встроили в планировщик MMCSS так называемое сетевое дросселирование, то есть принудительное понижение пропускной способности. Благодаря чему трафик в сети был ограничен порогом доставки не более 10 000 пакетов в секунду.

В обычных условиях, по идее, это ограничение было бы заметным лишь в 1-гигабитной сети, приводя примерно к 15-процентному падению пропускной способности. Однако, как выяснилось позже, в коде дросселирования была допущена ошибка, которая усиливает сужение канала вместе со всяким добавлением сетевых интерфейсов в систему. Это означает, например, что если в компьютере имеются Ethernet и адаптер беспроводной сети, то MMCSS ограничивает сеть числом не более 8000 пакетов в секунду. Если есть также адаптер Bluetooth, то пропускная способность падает до 6000 пакетов, а если имеется еще и FireWire, то, соответственно, канал становится еще уже.

Для наглядной демонстрации этого эффекта Руссинович на собственной машине показал, как примерно 20-процентная пропускная способность в его локальной 1-гигабайтной сети упала до 6% всего лишь из-за того, что параллельно он решил развлечься воспроизведением музыки через Windows Media Player. Причем дросселирование MMCSS работает столь настырно, что эффекты его ощущаются не только в быстрых, но и в «медленных» 100-мегабитных сетях.

При этом, по свидетельству Руссиновича, дросселирование в Vista на самом деле не требуется даже для широкополосных сетевых соединений. Потому что реально скорость доставки пакетов замедляется сама собой, из-за специфики работы протоколов TCP/IP, которые ради надежности передачи постоянно прерывают поток подтверждениями получения. Разработчики же «Висты», как узнал Руссинович, использовали старые расчеты для степени дросселирования сети. Эти оценки были когда-то давно выведены на основе экспериментов с однопроцессорными машинами в 100-мегабитных сетях, где опытным путем устанавливали такой порог для принимаемых сетевых пакетов, чтобы еще сохранялось качественное воспроизведение мультимедиа-файлов. Ныне, заключает Руссинович, уже понятно, что ориентироваться на подобные оценки было неосмотрительно и близоруко, учитывая то, насколько иначе работают сегодняшние системы с намного более быстрыми процессорами, многоядерными архитектурами и гигабитными сетями.

Понятно, что когда в Microsoft разобрались с промашкой, между разработчиками, занимающимися сетями, и программистами, сделавшими MMCSS, начались оживленные переговоры по поводу решения проблемы. Чем именно завершились эти переговоры, точно неизвестно, но зато один из читателей блога Руссиновича предложил собственный — весьма эффективный, по его оценкам, — вариант обхода. В реестре системы надо модифицировать ключ HKEY_LOCAL_ MACHINE\SYSTEM\CurrentControlSet\Services\Audiosrv\Dep, удалив оттуда параметр MMCSS, а через консоль управления службами отключить сервис MMCSS. Эти манипуляции после перезагрузки машины позволили ощутимо повысить скорость копирования файлов, невзирая на одновременное воспроизведение музыки.

Имитация прогресса

В январе этого года Билл Гейтс по сложившейся традиции выступал с большим докладом на крупнейшей мировой выставке бытовой электроники, CES-2008 в Лас-Вегасе. Главным отличием нынешнего выступления от всех предыдущих стало, видимо, то, что его можно рассматривать в качестве прощального — к лету Гейтс намерен полностью уйти с официальных постов в Microsoft и целиком переключиться на деятельность благотворительного фонда имени себя и жены Мелинды. Если же анализировать доклад Гейтса в аспектах, касающихся ОС Vista, то здесь он — наверняка невольно — раскрыл тайну компании о весьма неважной ситуации с продажами нового продукта.

Оценивая формально, подана эта информация была как большой и очевидный успех — за прошедший год удалось продать порядка 100 миллионов копий Vista, что заметно лучше продаж XP, для которой аналогичные цифры первого года на рынке сложились в 89 миллионов копий. Но если проанализировать эти показатели в общем контексте, то получится совершенно иная картина. По данным статистики, которая знает все, в 2002 году — то есть в «год XP» — в мире было продано 132,4 миллиона компьютеров. Это означает, что на Windows XP тогда пришлось порядка 67% или добрые две трети всех новых машин. В 2007 же году было продано 255,7 миллионов ПК, из которых на Windows Vista приходится лишь 39% или существенно меньше половины. И коль скоро прекрасно известно, что подавляющее большинство всех продаж новых ОС приходится не на коробочные издания, а на предустановленные копии в новых компьютерах, такой подсчет дает куда более объективное отражение реальности.

Люди, в большинстве своем не особо разбирающиеся в тонкостях технологии, обычно покупают то, что есть в магазинах. И если в розничной торговле покупки Vista на новых машинах превосходят числом XP примерно в соотношении 7:1, то это лишь означает, что систему XP принудительно изымают из продаж ради нового продукта. Но если оценивать особенности Vista по существу, то кроме более красивых картинок на экране все остальные новшества можно отнести к имитации прогресса. Или же к явным минусам.

Все очень непросто

Очевидные трудности, которые испытывает Microsoft с повышением производительности Vista, — это своеобразное отражение сложнейших конфликтов и взаимосвязей, возникающих при реализации любого гигантского проекта. Где разные группы участников совместно вроде бы решают общую задачу, однако в действительности могут иметь прямо противоположные в своей сути намерения. Пример с многочисленными DRM-проверками файлов и подсистем, всячески тормозящими естественные процессы обработки, иллюстрирует эту идею достаточно наглядно. Но, к сожалению, лишь теоретически, поскольку документированных тому подтверждений пока не представлено.

Но зато есть полностью достоверный пример из несколько иной области, затрагивающей криптографию в Vista. Как известно, подразделение разработчиков Microsoft, занимавшееся защитой информации в новой ОС, доверили возглавить авторитетному в мире компьютерной безопасности криптографу Нильсу Фергюсону. Который в очередной раз продемонстрировал свою высокую квалификацию летом прошлого года, когда на конференции Crypto-2007 вместе с одним из своих сотрудников, Дэном Шумовым, рассказал о выявленной ими серьезной слабости в стандартном криптогенераторе случайных чисел Dual_EC_DRBG. Этот алгоритм разработан американским Агентством национальной безопасности и недавно рекомендован НИСТ (Национальным институтом стандартов) США для повсеместного использования в программах шифрования при генерации ключей и векторов инициализации.

Фергюсон и Шумов, в свою очередь, обнаружили в этом алгоритме (который и без того работает примерно в 1000 раз медленнее других трех генераторов из того же комплекта НИСТ) нехорошую особенность из разряда тех, что принято именовать backdoor или «черный ход». Такого рода хитрости в криптоалгоритмах позволяют стороне, знающей суть секрета, восстанавливать ключи и быстро вскрывать шифры. Понятно, что любой разработчик, озабоченный безопасностью своего продукта, будет всячески избегать использования генераторов случайных чисел с уже выявленной закладкой. Однако в спецификациях сервис-пака SP1 для Vista, опубликованных в декабре 2007, сообщается, что он, среди прочего, добавляет в криптооснащение ОС новый алгоритм-генератор Dual_EC_DRBG… Что чувствует при таком повороте событий Нильс Фергюсон, пока неизвестно.