Windows 7 - Automatic Updates
Для одного эксперимента понадобилось поднять с нуля голую Win 7 SP1 и обновить ее при помощи службы Microsoft Update. Поведение службы Windows Update уже который год у меня вызвает настороженность. Во времена еще Win XP она работала как ей и полагается, но в какой-то момент стала совершенно невообразимо жрать ресурсы системы. До тех пор, пока не пройдет этап первоначального обновления.
Время шло, все, ну или почти все в итоге мигрировали на Windows 7 и выше. И поначалу Windows Automatic Update там вела себя тоже благочинно. Смотрела, качала, обновляла. В какой-то момент времени с ней случилась ровно та же напасть. Ресурсы жрет, но видимого результата нет. Хотя на самом деле он есть, но дожидаться его придется намного дольше, чем казалось на первый взгляд.
Самое любопытное. Первое, что служба пытается сделать - проверить, а не нужно ли ей обновить саму себя. И в подавляющем большинстве случаев именно это она и творит - тащит файлы обновлений в папку SelfUpdate, после чего система останавливает службу, обновляет ее, запускает, и уже после этого пытается получить список нужных ей обновлений с сайта. Именно здесь и происходит затык - этот самый список составляется несколько часов. А процесс svchost.exe (netsvc) тем временем доедает остатки ресурсов CPU и памяти.
Что ж, идем сюда: superuser.com/questions/821032/svchost-exe-high.... Там подсказывают, что для клиента Windows Update было выпущено stand-alone обновление - KB3050265. А ниже в комментариях еще одна подсказка: этих обновлений два - указанное выше и KB3102810. ОК, качаем оба, разворачиваем из образа новую свежую виртуальную машину, копируем оба скачанных файла в нее:
Windows6.1-KB3050265-x86.msu
Windows6.1-KB3102810-x86.msu
и последовательно их ставим с перезагрузкой после каждого (на всякий случай). А потом сравниваем результаты.
А результаты таковы. В виртуальной машине, где службе автообновления была дана команда на поиск обновок без установки этих двух патчей за два с лишним часа машина так и не смогла получить список того, что нужно стащить. В машине, где сначала были установлены эти два обновления, список файлов к закачке был сформирован за 10-15 минут. В данный момент виртуалка тащит почти гигабайт этих самых обновок, 237 штук.
И раскладка по нагрузке. Что в одной виртуальной машине, что в другой, загрузка по CPU доходит до потолка, то есть до 100%. Но в первом случае она не падала, и всю эту нагрузку давал всего один процесс (пресловутый svchost.exe), во втором на графике видим гребенку, и нагрузка размазана между system, svchost, trustedinstaller.
Где-то мне попадалась заметка, что MS хочет выпустить для Win 7 большой Roll-up. Жду не дождусь.