2015-03-16 04:37:45 +0000 2015-03-16 04:37:45 +0000
123
123

Почему проверка обновления Windows Update происходит так медленно?

У меня есть ПК с Windows 7, на которых автоматическое обновление отключено. Я делаю обновления пакетно раз в месяц или около того. Но каждый раз “проверка обновления” занимает от 15 до 30 минут. Я не понимаю, почему проверка обновлений может быть так медленно? Я должен задаться вопросом, что происходит в фоновом режиме. Это вычислительный хэш? Пострадают ли мои компьютеры с включенным автоматическим обновлением каждый раз, когда он загружается (только то, о чем я не знал)?

Ответы (12)

103
103
103
2015-07-02 04:25:06 +0000

Часть checking for updates is so slow because:

  • Windows 7 использует Component-Based Servicing , что означает, что Windows Update должна работать нелепо, чтобы определить файловые и компонентные зависимости/взаимозависимости, поддерживать параллельные версии старых файлов/компонентов, при этом позволяя деинсталлировать отдельные обновления/компоненты, но не нарушая другие обновления/компоненты, учитывая при этом суперцеденцию и бог знает, что еще. Код, который делает все это, должен быть чертовски сложным.

  • Windows 7 64-битная версия должна поддерживать как 32-битную, так и 64-битную версию каждого обновления.

  • Windows должна поддерживать как GDR, так и LDR ](https://web.archive.org/web/20141218171018/http://blogs.technet.com/b/mrsnrub/archive/2009/05/14/gdr-qfe-ldr-wth.aspx) версии каждого обновления, что означает, что в Windows 7 64-битная версия получает 32-битный GDR, 32-битный LDR, 64-битный GDR, 64-битный LDR за каждое обновление.

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

К сожалению для нас, Microsoft не любит говорить о внутреннем устройстве Windows, поэтому в конечном итоге нам приходится выяснять это для себя или строить догадки.

60
60
60
2015-07-02 19:58:00 +0000

Несколько аспектов проблемы были учтены в существующих ответах. Я постараюсь связать их воедино, перечислив причины в общем виде, не повторяя уже сказанного:

  1. Механизм Microsoft Windows Update чрезвычайно сложен, что, к сожалению, также означает сложную
  2. WU должен поддерживать неисчислимое количество аппаратных и программных комбинаций
  3. WU должен применять обновления в правильном порядке
  4. Windows 7 - старая система, а SP2 просрочена и, вероятно, никогда не появится, что составляет очень много обновлений
  5. Последние годы Microsoft была под большим давлением, чтобы исправить многочисленные проблемы безопасности, что привело к очень большому количеству лихорадочных исправлений, затем исправлений и т.д. в n'th поколение
  6. Microsoft не смогла достаточно оптимизировать механизм обновления, который в целом является экспоненциальным алгоритмом, что приводит к довольно медленному алгоритму грубой силы.
  7. WU-серверы Microsoft иногда перегружены.

Рассмотрим эти моменты подробнее.

Сложности обновления Windows

После выпуска обновления со временем могут вступать в три дополнительных различных этапа: Изменения, замещение и истечение срока действия.

Обновления : Когда изменения вносятся в ранее выпущенное обновление, оно называется Update Revision (Обновление), в котором изменяются некоторые части загружаемого файла. Это частичная, не полная замена обновления.

Перераспределенные обновления : Это полная замена предыдущего релиза или релиза. Иногда корпорация Майкрософт обертывает несколько выпусков в один пакет, и этот пакет заменяет инкапсулированные обновления.

Просроченные обновления : Это обновления, удаленные из списка действительных. Такие обновления больше не применимы и не будут обнаружены для установки. В большинстве случаев срок действия обновления истекает после замены его на Замененное обновление.

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

Просроченные обновления являются проблематичными для производительности WU, так как, к сожалению, они не удаляются с компьютера, поэтому они все еще принимают участие в вычислениях, и их так много. Некоторые улучшения могут быть достигнуты с помощью Disk Cleanup to Remove Outdated Windows Updates (сначала сделайте резервный образ диска системного диска, так как WU также очень хрупкий).

Расчеты WU

Из-за огромного количества возможных комбинаций, Майкрософт хранит все обновления на серверах WU в формате громоздкого дерева. Решение о том, какие обновления необходимо применять, принимается алгоритмом обрезки дерева, который учитывает установленное клиентом оборудование и программное обеспечение, а также все уже установленные обновления, что само по себе является большим количеством фактов, которые необходимо успешно применить при обрезке.

Алгоритм не гарантированно приведет к успеху, а это означает, что WU вполне способен уничтожить операционную систему или даже сделать ее незагружаемой. Это вполне понятно, например, если взять обновление A1, имеющее ревизию A2, где обновление B, зависящее от A, было выпущено между A1 и A2. Теперь подумайте, должен ли порядок установки быть A1-B-A2 или A1-A2-B, когда неправильное решение может быть смертельным.

Перегруженные серверы WU

Википедия имеет это сказать о Windows Update statistics :

По состоянию на 2008 год, Windows Update имел около 500 миллионов клиентов, обрабатывал около 350 миллионов уникальных сканирований в день, и поддерживал в среднем 1.5 миллиона одновременных подключений к клиентским машинам. Во вторник, в день, когда Microsoft обычно выпускает новые обновления программного обеспечения, исходящий трафик может превышать 500 гигабит в секунду.

Эти цифры, вероятно, удвоились к настоящему времени, и объясняют, почему серверы WU иногда недоступны. Я использую опцию WU “Проверять обновления, но позвольте мне выбрать”, и по собственному опыту могу сказать, что бывают дни и времена, когда проверка обновлений занимает больше времени, чем я готов ждать, что требует отсрочки.

Длинная история Windows 7

Windows 7 была выпущена 22 июля 2009 года. Примерно через 17 месяцев 22 февраля 2011 года вышел пакет обновления 1 (SP1). Это было около 4,5 лет назад, а это означает, что SP2 уже давно просрочен.

Хорошая сторона пакета обновления заключается в том, что его установка стирает всю историю обновлений, так что в действительности WU начинает с нуля, точно так же, как и после свежей установки Windows. Это, конечно же, значительно ускоряет все вычисления, так как количество обновлений меньше.

Огромное количество существующих обновлений, начиная с SP1, объясняет, почему вычисления WU сегодня так медленно выполняются. Для Microsoft проблема может быть решена “просто” путем перехода на более новые версии Windows 8.1 или Windows 10, так что WU будет иметь меньшее количество обновлений для учета.

Включение

Как Microsoft по-прежнему применяет многочисленные обновления для Windows 7, WU будет продолжать замедляться только по прошествии времени.

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

Большинство обновлений также применяются к Windows 8 и 10, поэтому нагрузка на серверы WU от Microsoft будет только умножаться, когда Windows 10 будет скоро выпущена. Похоже, что Microsoft также распределяет пропускную способность своих WU серверов в соответствии со своими собственными политиками, с акцентом на обслуживание более современных операционных систем, поэтому следует ожидать очередного замедления работы Windows 7 после выхода Windows 10, наряду с непропорционально быстрым выпуском обновлений для Windows 10.

Если WU слишком медленный, единственным реальным решением будет переход на более позднюю версию Windows.

Новости хорошего тона: SP2 для Windows 7 (и 8.1) прибыл

Компания Microsoft опубликовала то, что на самом деле является SP2 для Windows 7 и 8.1. Это обновление не будет доступно из Windows Update по неизвестной причине, поэтому его нужно загрузить и установить вручную.

Читайте о том, как его получить, в статье : Microsoft проводит капитальный ремонт обновлений Windows 7 и 8.1 – но не называйте его пакетом обновлений .

22
22
22
2016-01-16 18:23:17 +0000

Эта проблема возникала и исчезала на протяжении многих лет с различными исправлениями, поэтому вот мое обновленное руководство по этой проблеме по состоянию на 5 января 2016 г.

Проверьте раздел EDIT ниже, есть гораздо более быстрый способ полностью обновить Windows 7 SP1 после чистой установки с мая 2016 г.

Это то, что я делаю, когда переустанавливаю W7 с SP1 или у меня проблемы с обновлением Windows застряли при проверке обновлений.

Если Service Pack 1 не установлен, установите его, прежде чем следовать этому руководству. Скачать KB-3138612 и сохранить его там, где вы можете найти его позже Скачать SUR Tool сохранить его в том же месте

Перезагрузить компьютер и отключиться от интернета перед загрузкой Windows, это важно, потому что в каждом окне загрузки будет проверять наличие обновлений в фоновом режиме, и это запустит проверку на наличие обновлений зависает снова и будет препятствовать установке загруженных пакетов, пока он не закончит проверку, так что отключение от интернета перед загрузкой Windows предотвращает это.

После загрузки установить KB-3138612, если перезагрузка требуется сделать это и оставаться отключенным от интернета.

Теперь установите пакет SUR Tool, это большой пакет и будет установить много обновлений вместе с очисткой и ремонтом магазина обновления Windows. Он также сократит количество обновлений Windows, которые нужно будет установить позже.

После установки пакета SUR перезагрузитесь, подключитесь к Интернету и сделайте ручное обновление Windows, оно должно работать намного быстрее сейчас. Даже после этих исправлений я видел, что некоторые W7 PC занимают до часа, чтобы закончить проверку обновлений, если они запущены из Панели управления вручную.

Если у вас есть другие проблемы с обновлениями Windows и 2 обновления, указанные выше, установлены, загрузите этот Microsoft Windows Update fixit инструмент (щелкните правой кнопкой мыши “сохранить ссылку как”) запустите его и выберите агрессивный режим, чтобы полностью сбросить Windows обновлений. Перезагрузите и попробуйте Windows Updates из Панели управления еще раз. Этот инструмент исправляет проблемы, когда другие инструменты Microsoft исправляют ошибки, по крайней мере, по моему опыту.

Обновления: Компания Microsoft выпустила огромное количество обновлений для Windows 7 SP1 , это похоже на пакет обновления, но они не называют его так. Это сделает обновление Windows 7 намного быстрее после чистой установки, больше никаких проблем с обновлением Windows и множеством перезагрузок. Это обновление приведет систему к исправлению во вторник апреля 2016 г.

Это не будет выпущено через Windows Update, вы должны использовать Internet Explorer, чтобы получить его, откройте IE и перейдите по этому адресу

http://catalog.update.microsoft.com/v7/site/home.aspx

Введите в поле поиска 3125574 и нажмите клавишу Enter.

Теперь вы увидите все версии этого рулона, выберите ту, которая вам нужна, и загрузите его где-нибудь вы можете найти его позже.

Также используйте страницу Windows Update Catalog page to download and install this update first, 3020369 , it is a prerequisite for the rollup, then install 3125574, also be sure to be disconnected from the Internet when application these updates.

9
9
9
2016-04-08 04:28:59 +0000

Когда вы используете ETW/WPR/WPA для проверки использования процессора во время сканирования, вы видите, что использование процессора исходит от wuaueng.dll!CUpdatesToPruneList::AddSupersedenceInfoIfNeeded, который вызывается из wuaueng.dll!CAgentUpdateManager::FindUpdates. Метод AddSupersedenceInfoIfNeeded является самым медленным. Он делает то, что указывает его название, и выглядит так, если предлагаемые/установленные обновления Windows 7 все еще нужны или заменены (устаревшие/замещенные более новыми). Это очень медленно.

С последним клиентским обновлением Windows Update Client от июнь 2016 , которое является частью Windows 7 July 2016 Update Rollup , поиск обновлений снова происходит быстро.

  1. Загрузка:
  2. 32Bit: https://www.microsoft.com/en-us/download/details.aspx?id=53335
  3. 64Bit: https://www.microsoft.com/en-us/download/details.aspx?id=53332

Потребуется всего чуть больше 1 минуты для поиска новых обновлений. Чтобы ускорить установку обновления KB3172605, остановите службу WindowsUpdate (net stop wuauserv).

Этот трюк с WU службой остановки ускоряет установку, когда вы устанавливаете несколько MSU обновлений:

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR /R "%~dp0" %%A IN (*Windows6.1-KB*.MSU) DO (
        CALL :SUB %%~nA        
    ECHO= Installing KB!KB_NUM!        
    >NUL net stop wuauserv
    WUSA "%%A" /quiet /norestart)
ECHO= == Press any key to close the Window ==
>NUL PAUSE

GOTO :EOF

:SUB

SET "KB_NUM=%*"
FOR /F "DELIMS=-" %%B IN ("%KB_NUM:*-KB=%") DO SET "KB_NUM=%%B"

В Windows 10 Microsoft исправила проблему, следуя моему предложению и делая обновления кумулятивными. Здесь вам нужно только 1 большое обновление, чтобы быть на текущем уровне патчей. Такая медленная проверка больше не нужна.

3
3
3
2015-12-11 10:56:36 +0000

Если прошлый опыт с обновлением XP хоть как-то указывает на это, то они время от времени давайте просунем туда экспоненциально-временной алгоритм . Что, если у вас много обновлений… занимает вечность. В настоящее время обновления Win 7 находятся в похожей ситуации; это занимает много времени, хотя официального объяснения этой последней медлительности пока нет. Интересно, что это “просто происходит” (со старыми версиями), когда у них выходит новая. Циничный я не могу не представить, что кто-то может намеренно хотеть, чтобы это произошло, по аналогии с [старыми] Windows медленно? Вам нужна новая версия. Или, может быть, это просто MS способ начала курортного сезона.

Есть хотфикс для своего рода WU slowwness, который не предлагается автоматически (т.е. через само обновление): https://support.microsoft.com/en-us/kb/3102810 Увы, это не сильно повлияло на мой случай, и я попробовал его на двух разных компьютерах, один 32-битный и один 64-битный. Также он существует с октября, так что, скорее всего, это не для последнего выпуска.

2
2
2
2015-07-02 04:36:03 +0000

Сегодня около миллиарда компьютеров работают под управлением Windows. Каждый ПК имеет определенную комбинацию аппаратного обеспечения, аксессуаров, версии ОС, языка, IE, версии драйвера устройства, программного обеспечения Microsoft на различных уровнях патча, обновлений безопасности и т.д. Система Windows Update должна отсортировать все эти комбинации, чтобы предложить правильные обновления для отдельного ПК. Каждое обновление имеет свойства, включая зависимости и структуру “надстройки”.

Первым шагом (первым запуском) при сканировании является определение версии ОС, SP, языка, производителя ПК, чтобы подрезать дерево вероятных обновлений для ПК. Основываясь на этом первом сканировании, на устройство посылается вероятный набор идентификаторов обновлений, и локальный клиент вычисляет, какие обновления установлены, заменены и т.д., а затем посылает этот список на сервер и также кэширует копию локально для последующих сканирований. Сервер отвечает на запрос клиента об обновлениях с описаниями и т.д., которые отображаются в UI (на соответствующем языке UI).

Один раз в день клиентом автоматических обновлений в фоновом режиме выполняется контрольное обновление и обновляется локальный кэш установленных обновлений, так что последующее сканирование выполняется просто дельта и быстро. Они хранятся в папке %windir%\softwaredistribution на ПК.

Аналогичный процесс выполняется и для ранее загруженных обновлений. Сервис не будет повторно загружать пакеты.

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

Заметное изменение во времени, затрачиваемом на проверку обновления для установки, произошло, когда я изменил настройки обновления Windows на Check for updates but let me choose whether to download and install them.

1
1
1
2015-10-20 10:09:12 +0000

Это медленно, потому что Windows Update и некоторые другие компоненты системы Windows используют движок базы данных Microsoft JET Blue , который страдает от печально известной плохой производительности и является общим ресурсом.

Как и другие упоминали, также, кажется, есть некоторая степень рекурсии в самом коде Windows Update, что приводит к плохой производительности по мере увеличения количества обновлений.

1
1
1
2015-07-01 18:46:57 +0000

Лучше всего, на мой взгляд, включить обновление Windows и переключиться на опцию, позволяющую загружать обновления, но не устанавливать их автоматически. Таким образом, вы можете получить то, что вы хотите установить без необходимости ждать чеков или загрузки фоновых файлов.

Сейчас, чтобы ответить, почему это медленно. Я думаю, что это просто сводится к тому, что Windows обновления были построены с уменьшением заметного влияния на пользователей в виду. Он использует службу BITS (фоновая интеллектуальная служба передачи) для проверки и загрузки обновлений.

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

Вы можете посмотреть на то, как настроить свой собственный сервер WSUS. В этом случае вы сможете запрещать обновления точно так же, как это делают администраторы предприятия, а также применять или запрещать эти выбранные обновления на всех ваших устройствах windows, которыми вы владеете. Делать эту рутинную работу выборочным обновлением, а не рутинной.

0
0
0
2018-05-08 16:10:00 +0000

Просто чтобы добавить еще одну точку данных. Недавно мне пришлось поднять вопрос о компьютере Vista. Я вручную обновил Vista с SP1 до SP2, но проверка обновления занимает целую вечность. Ничего не происходило в течение 24+ часов.

я сделал несколько гуглингов, которые нашли решение, включающее установку следующих обновлений: http://www.catalog.update.microsoft.com/Search.aspx?q=KB3205638%20vista [http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012583%20vista](http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012583%20vista http://www.catalog.update.microsoft.com/Search.aspx?q=KB4015195%20vista http://www.catalog.update.microsoft.com/Search.aspx?q=KB4015380%20vista

После скачивания и установки обновлений вручную. Я запустил проверку обновлений в течение 10 минут и обнаружил 200 обновлений. Имейте в виду, что это для Vista, но я думаю, что, возможно, что-то подобное существует и для Windows 7.

-1
-1
-1
2015-10-24 20:34:13 +0000

У меня возникла эта проблема, и я позволил обновлению Windows Update запуститься в первый раз на свежеустановленной машине. Советы для успешного выполнения:

  • Перейти к энергетическим опциям, установить время ожидания на “никогда”

  • Включить автоматическое обновление Windows Update. Время по умолчанию 03:00AM - нормально, так как процесс поиска также занимает время

  • Также рекомендуется сделать процесс “Windows update needs to update some components…” в первый раз (идет быстро по сравнению с более чем 200 обновлениями в случае Windows 7)

Когда все было обновлено корректно, вы обнаружите огромное количество патчей (около 200) были установлены. Windows также дефрагментировала и запустила обновления/сканирование Windows Defender.

После этого, оставшиеся циклы обновления Windows (поиск обновлений - установка - перезагрузка - поиск обновлений - установка - перезагрузка - поиск обновлений … пока # обновлений не станет 0) работают намного быстрее.

-1
-1
-1
2015-11-30 00:37:40 +0000

При свежей установке windows 7 я использую оригинальные, но все же с проскальзывающими обновлениями установочного диска, в любом случае я сахест вы попробуете обновления kb3102810 и kb3050256 для установки сразу после свежей установки эти два могут значительно увеличить скорость как поиска, так и установки обновлений.

-2
-2
-2
2015-03-16 06:31:45 +0000

Не хэширует, но да, много проверяет (так же глубоко, как и некоторые версии файлов DLLs). Она медленная, независимо от того, какую систему вы используете.

В качестве решения, держите ее выключенной, и когда есть день или ночь, вам не нужно слишком много системы, включите ее, заставьте ее проверить на обновления и дайте им всем установить.

Похожие вопросы

3
28
13
7
2