Pull to refresh

Экспоненциальный алгоритм сильно замедляет Windows XP

Reading time 2 min
Views 83K
Разработчик отдела Windows Update Даг Нил (Doug Neal) объяснил, почему в последнее время многие пользователи Windows XP испытывают проблемы с производительностью после установки свежих обновлений.

Как показало изучение логов с «заторможенных» машин, проблема заключается в неэффективном методе, которым модуль Windows Update Agent обрабатывает длинные списки предшествующих апдейтов. Время обработки списков возрастает экспоненциально с каждым новым апдейтом. Другими словами, обработка нового обновления занимает вдвое больше времени, чем предыдущего.

За историю Windows XP было выпущено огромное количество патчей, так что при обработке списка из 40+ старых апдейтов процесс svchost.exe начинает потреблять много ресурсов CPU, и это заметно отражается на общей производительности системы.

Ситуация наблюдается преимущественно на системах Windows XP с установленным браузером IE6 или IE7, но не с браузером IE8. В связи с требованиями безопасности браузер Internet Explorer имеет право строить вышеупомянутую цепочку дольше, чем это обычно разрешено для Windows Update. Со временем это исключение и привело к проблеме из-за ранее неизвестного бага в Windows Update Agent.

Подразделение Microsoft Security Response Center дало разрешение на сокращение списка обрабатываемых апдейтов, и разработчики Windows Update постарались исправить баг. В октябре нынешнего года они сократили список на стороне бэкенда, но это не помогло: «Оказалось, что Windows Update Agent довольно умён и он обхитрил нас, — пишет Даг Нил, — так что проблема сохранилась для большинства пострадавших пользователей». Более полное изменение бэкенда произвели в ноябре, и ещё одно — в декабре. К сожалению, проблему всё равно не удалось устранить.

К сожалению, пакеты обновлений выходят раз в месяц, так что следующую попытку не получится осуществить до января. Даг Нил уверяет, что эта проблема сейчас имеет наивысший приоритет — и на её решение бросили правильных (и самых умных) людей. Скоро выпустят официальный бюллетень KB с более подробным описанием ситуации, но официального способа обойти её пока что не существует. Разве что навсегда отключить Windows Update.

На форумах шутят, что компания Microsoft нашла идеальный способ заставить пользователей Windows XP сделать апгрейд на более новые версии операционной системы. Официальная поддержка самой долгоживущей ОС в линейке Microsoft заканчивается в апреле 2014 года, и перед этим достаточно выпустить десяток пустых обновлений.

UPD. Комментарий от Алексея Соломина (IRainman): «В Windows 7 можно сделать очистку хвостов для Windows Update через инструмент «Очистка диска», пункт «Очистка обновлений Windows», эту возможность добавили только в Windows 7 и более новые редакции. Также прошу отметить, что если кто-то ставил Windows 7 SP1 с нуля недавно, то при первых апдейтах ей становится очень плохо, при этом сервис авто обновлений отжирает процессор, и может выжрать несколько ГБ памяти. Проблема действительно касается всех версий, просто на Windows 7 и старше менее заметна».
Tags:
Hubs:
+74
Comments 142
Comments Comments 142

Articles