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

Dlaczego sprawdzanie Windows Update jest tak powolne?

Mam komputery z systemem Windows 7, które mają wyłączoną automatyczną aktualizację. Aktualizacje przeprowadzam partiami raz w miesiącu lub częściej. Ale za każdym razem “sprawdzanie aktualizacji” trwa od 15 do 30 minut. Nie rozumiem dlaczego sprawdzanie aktualizacji może być tak powolne? Muszę się zastanawiać, co się dzieje w tle. Czy to haszysz komputerowy? Czy moje komputery z włączoną automatyczną aktualizacją cierpią na ten sam los za każdym razem, gdy się uruchamiają (tylko, że nie wiedziałem)?

Odpowiedzi (12)

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

The checking for updates part is so slow because:

  • Windows 7 uses Component-Based Servicing , which means Windows Update has to work ridiculously hard to determine file and component dependencies/inter-dependencies, maintain side-by-side versions of older filess/components, while still making it possible to uninstall individual updates/components but without breaking any other updates/components, all the while taking into account supercedence and god knows what else. Kod, który to wszystko robi musi być piekielnie skomplikowany.

  • Windows 7 64-bitowy musi utrzymywać zarówno 32-bitowe jak i 64-bitowe wersje każdej aktualizacji.

  • Windows musi utrzymywać zarówno GDR i LDR wersje każdej aktualizacji, co oznacza, że na Windows 7 64-bitowy otrzymasz 32-bitowy GDR, 32-bitowy LDR, 64-bitowy GDR, 64-bitowy LDR dla każdej aktualizacji.

  • Kod za Windows Update jest bardzo niewydajny, prawdopodobnie ze względu na jego koncepcyjną złożoność. Moje obserwacje na przestrzeni ostatnich kilku lat są takie, że wraz ze wzrostem całkowitej liczby wydanych aktualizacji, czas sprawdzania aktualizacji wydłużył się w sposób niemal wykładniczy. Dla mnie jest to oznaką stosowania pewnego rodzaju rekursywnych algorytmów, być może w celu określenia superkonkurencyjności lub rozwiązania zależności.

Niestety dla nas Microsoft nie lubi rozmawiać o wewnętrznych systemach Windows, więc w końcu musimy sami się o tym przekonać lub spekulować.

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

W istniejących odpowiedziach potraktowano kilka aspektów problemu. Postaram się je powiązać, wymieniając przyczyny w sposób ogólny, bez powtarzania tego, co już zostało powiedziane:

  1. Mechanizm Microsoft Windows Update jest niezwykle wyrafinowany, co niestety oznacza również skomplikowane
  2. WU musi obsługiwać nieobliczalną ilość kombinacji sprzętowych i programowych
  3. WU musi stosować aktualizacje w odpowiedniej kolejności
  4. Windows 7 jest starszym systemem, a SP2 jest opóźniony i prawdopodobnie nigdy nie pojawi się, co sprawia, że bardzo wiele aktualizacji
  5. W ostatnich latach Microsoft był pod wielką presją, aby naprawić wiele problemów z bezpieczeństwem, co spowodowało bardzo wiele gorączkowych poprawek, następnie poprawki poprawek i tak dalej do n'th generacji
  6. Microsoft nie był w stanie wystarczająco zoptymalizować mechanizmu aktualizacji, który jest generalnie algorytmem wykładniczym, w wyniku czego algorytm brutalnego wymuszania jest raczej powolny.
  7. Serwery WU Microsoftu są czasami przeciążone.

Przyjrzyjmy się tym punktom bardziej szczegółowo.

Windows Update complexities

Po wydaniu aktualizacji może ona wejść w trzy dodatkowe różne fazy w czasie: Poprawki, Zastąpienie i Wygaśnięcie.

Uaktualnij Poprawki : Po wprowadzeniu zmian do wcześniej opublikowanej aktualizacji, jest ona nazywana Update Revision, gdzie niektóre elementy pobierania są zmieniane. Jest to częściowa, nie pełna wymiana aktualizacji.

Zamienione aktualizacje : Jest to całkowite zastąpienie poprzedniego wydania lub wydań. Czasami Microsoft zapakuje wiele wydań w jeden pakiet, a ten pakiet zastąpi jego zamknięte aktualizacje.

Wygasłe aktualizacje : Jest to całkowite zastąpienie poprzedniego wydania: Są to aktualizacje usunięte z listy ważnych aktualizacji. Takie aktualizacje nie mają już zastosowania i nie zostaną wykryte podczas instalacji. W większości przypadków aktualizacja wygasa po zastąpieniu jej przez Aktualizację Zastąpioną.

Aktualizacje posiadają również mechanizm zależności, co oznacza, że niektóre aktualizacje mogą wymagać zastosowania w pierwszej kolejności innych.

Wygaśnięte aktualizacje są problematyczne dla wydajności WU, ponieważ niestety nie są one usuwane z komputera, więc nadal biorą udział w obliczeniach, a jest ich tak wiele. Pewną poprawę można uzyskać stosując Disk Cleanup do Remove Outdated Windows Updates (najpierw należy wykonać kopię zapasową dysku systemowego, ponieważ WU jest również bardzo kruchy).

WU Calculations

Ze względu na ogromną liczbę możliwych kombinacji, Microsoft utrzymuje wszystkie aktualizacje na serwerach WU w formacie drzewa humongousowego. Decyzję o tym, które aktualizacje mają być zastosowane, podejmuje algorytm przycinania drzewka, który uwzględnia zainstalowany sprzęt i oprogramowanie klienta, jak również wszystkie już zainstalowane aktualizacje, co samo w sobie stanowi duży zbiór faktów, które muszą być zastosowane z powodzeniem podczas przycinania.

Algorytm nie ma gwarancji powodzenia, co oznacza, że WU jest w stanie całkowicie zniszczyć system operacyjny, a nawet uniemożliwić jego uruchomienie. Jest to całkowicie zrozumiałe, na przykład biorąc poprawkę A1, posiadającą poprawkę A2, gdzie poprawka B zależna od A została wydana między A1 a A2. Teraz zastanów się czy kolejność instalacji powinna być A1-B-A2 czy A1-A2-B, kiedy zła decyzja może być śmiertelna.

Overburdened WU servers

Wikipedia ma to do powiedzenia o Windows Update statistics :

W 2008 roku Windows Update miał około 500 milionów klientów, przetwarzał około 350 milionów unikalnych skanów dziennie i utrzymywał średnio 1,5 miliona jednoczesnych połączeń z maszynami klienckimi. We wtorek, w dniu, w którym Microsoft zazwyczaj wydaje nowe aktualizacje oprogramowania, ruch wychodzący może przekraczać 500 gigabitów na sekundę.

Te liczby prawdopodobnie podwoiły się do tej pory i wyjaśniają, dlaczego serwery WU są czasami niedostępne. Używam opcji WU “Sprawdź dostępność aktualizacji, ale pozwól mi wybrać”, a z mojego własnego doświadczenia wynika, że są dni i godziny, w których sprawdzanie dostępności aktualizacji trwa dłużej niż jestem gotów czekać, co wymaga odroczenia.

Długa historia Windows 7

System Windows 7 został wydany 22 lipca 2009 roku. Po około 17 miesiącach, Service Pack 1 (SP1) ukazał się 22 lutego 2011 roku. Było to około 4,5 roku temu, co oznacza, że SP2 jest już dawno spóźniony.

Dobrą stroną Service Pack'a jest to, że jego instalacja wymazuje całą historię aktualizacji, tak że w efekcie WU zaczyna się od zera, dokładnie tak jak po nowej instalacji Windows. To oczywiście ogromnie przyspiesza wszystkie obliczenia, ponieważ jest mniej aktualizacji do uwzględnienia.

Sama liczba istniejących aktualizacji od SP1 wyjaśnia, dlaczego obliczenia WU są dziś tak wolne. Dla Microsoftu problem można rozwiązać “po prostu” poprzez aktualizację do nowszego systemu Windows 8.1 lub Windows 10, więc WU będzie miał mniejszą liczbę aktualizacji do uwzględnienia.

Włączenie

As Microsoft nadal stosuje liczne aktualizacje do systemu Windows 7, WU będzie zwalniać tylko w miarę upływu czasu.

Jedną z możliwych optymalizacji jest Usuń nieaktualne aktualizacje Windows . Inną jest użycie opcji WU “Check for updates but let me choose” (sprawdź dostępność aktualizacji, ale pozwól mi wybrać) i sprawdzenie dostępności aktualizacji wczesnym rankiem lub późną nocą.

Większość aktualizacji dotyczy także systemów Windows 8 i 10, więc obciążenie serwerów WU firmy Microsoft będzie się zwiększać dopiero po wydaniu systemu Windows 10. Microsoft wydaje się również, że przepustowość swoich serwerów WU parkuje zgodnie z własnymi zasadami, z naciskiem na obsługę nowszych systemów operacyjnych, więc powinniśmy spodziewać się kolejnego spowolnienia dla Windows 7 po wydaniu Windows 10, wraz z nieproporcjonalnie szybszymi aktualizacjami dla Windows 10.

Jeśli WU jest zbyt wolny, jedynym realnym rozwiązaniem jest upgrade do późniejszej wersji Windows.

Dobra wiadomość: pojawiła się SP2 dla Windows 7 (i 8.1)

Microsoft opublikował to, co faktycznie jest SP2 dla Windows 7 i 8.1. Ta aktualizacja nie będzie dostępna w Windows Update z jakiegoś nieznanego powodu, więc musi być ręcznie pobrana i zainstalowana.

Przeczytaj o tym, jak to uzyskać w artykule : Microsoft dokonuje aktualizacji Windows 7 i 8.1 – ale nie nazywaj tego service pack .

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

Ten problem przychodził i odchodził przez lata z różnymi poprawkami po drodze, więc tutaj jest mój zaktualizowany przewodnik po tym problemie od tej daty 5 stycznia 2016

Sprawdź sekcję EDIT poniżej, jest znacznie szybszy sposób na pełną aktualizację Windows 7 SP1 po czystej instalacji od maja 2016.

To jest to, co robię, gdy ponownie instaluję W7 z SP1 lub mam problemy z aktualizacją Windows przyklejone na sprawdzaniu aktualizacji.

Jeśli Service Pack 1 nie jest zainstalowany, zainstaluj go przed podążaniem za tym przewodnikiem. Download KB-3138612 i zapisz go w miejscu, gdzie znajdziesz go później Download SUR Tool zapisz go w tym samym miejscu

Uruchom ponownie komputer i rozłącz się z Internetem przed załadowaniem Windows, jest to ważne, ponieważ przy każdym uruchomieniu Windows będzie sprawdzał aktualizacje w tle, a to spowoduje, że sprawdzanie aktualizacji powiesi się na nowo i uniemożliwi instalację pobranych pakietów do czasu zakończenia sprawdzania, więc rozłączenie się z Internetem przed załadowaniem Windows temu zapobiegnie.

Po uruchomieniu komputera zainstaluj KB-3138612, jeśli wymagane jest ponowne uruchomienie komputera, zrób to i zostań odłączony od Internetu.

Teraz zainstaluj pakiet SUR Tool, jest to duży pakiet i zainstaluje wiele aktualizacji wraz z czyszczeniem i naprawą sklepu z aktualizacjami systemu Windows. Zredukuje on również liczbę kolejnych aktualizacji systemu Windows, które trzeba będzie zainstalować później.

Po zainstalowaniu reboota pakietu SUR, połączeniu się z Internetem i wykonaniu ręcznej aktualizacji systemu Windows, powinien on teraz działać znacznie szybciej. Nawet po tych poprawkach widziałem, że niektóre komputery W7 potrzebują do godziny, aby zakończyć sprawdzanie aktualizacji, jeśli są one uruchamiane ręcznie z Panelu sterowania.

Jeśli masz inne problemy z aktualizacją systemu Windows i zainstalowane są 2 aktualizacje powyżej, pobierz to narzędzie Microsoft Windows Update fixit (kliknij prawym przyciskiem myszy “zapisz link jako”) uruchom je i wybierz tryb agresywny, aby całkowicie zresetować aktualizacje systemu Windows. Uruchom ponownie komputer i spróbuj ponownie zainstalować Aktualizacje systemu Windows z Panelu sterowania. To narzędzie naprawia problemy, gdy inne narzędzia Microsoft fixit zawodzą, przynajmniej z mojego doświadczenia.

Update: Firma Microsoft wydała ogromny rollup aktualizacji dla Windows 7 SP1 , to jest podobne do service pack, ale nie nazywają go tak. To sprawi, że aktualizacja Windows 7 po czystej instalacji będzie dużo szybsza, nie będzie więcej problemów z aktualizacją Windows i wielu restartów. Ten rollup aktualizacyjny spowoduje, że bieżący system zostanie naprawiony we wtorek kwietnia 2016 roku.

To nie jest wydawane przez Windows Update, musisz użyć Internet Explorer, aby go uzyskać, otwórz IE i przejdź do tego adresu

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

Wpisz w pole wyszukiwania 3125574 i naciśnij klawisz Enter.

Teraz zobaczysz wszystkie wersje tego katalogu, wybierz tę, która jest potrzebna i pobierz ją gdzieś, gdzie znajdziesz ją później.

Użyj również strony Windows Update Catalog do pobierz i zainstaluj najpierw tę aktualizację, 3020369 , jest ona warunkiem wstępnym do rollupu, następnie zainstaluj 3125574, upewnij się również, że podczas stosowania tych aktualizacji jest odłączony od Internetu.

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

Kiedy używasz ETW/WPR/WPA aby sprawdzić użycie procesora podczas skanowania widzisz, że użycie procesora pochodzi z wuaueng.dll!CUpdatesToPruneList::AddSupersedenceInfoIfNeeded, który jest wywoływany z wuaueng.dll!CAgentUpdateManager::FindUpdates. Metoda AddSupersedenceInfoIfNeeded jest najwolniejszą rzeczą. Robi to co wskazuje nazwa i wygląda jeśli oferowane/zainstalowane aktualizacje Windows 7 są nadal potrzebne lub zastąpione (przestarzałe/zastąpione przez nowsze). Jest to bardzo powolne.

Z ostatnią aktualizacją Windows Update Client z czerwca 2016 , która jest częścią Rollupa Aktualizacji Windows 7 lipca 2016 , wyszukiwanie aktualizacji jest znowu szybkie.

  1. Download:
  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

Zajmuje mi to tylko trochę ponad 1 minutę na szukanie nowych aktualizacji. Aby przyspieszyć konfigurację aktualizacji KB3172605, zatrzymaj usługę WindowsUpdate (net stop wuauserv).

Ten trik zatrzymujący usługę WU znacznie przyspiesza instalację, gdy instalujesz kilka aktualizacji 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"

W Windows 10 Microsoft naprawił problem podążając za moją sugestią i sprawił, że aktualizacje kumulują się. Tutaj potrzebujesz tylko 1 dużej aktualizacji, aby być na obecnym poziomie poprawki. To powolne sprawdzanie nie jest już potrzebne.

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

Jeśli wcześniejsze doświadczenia z aktualizacją XP są jakimikolwiek wskazówkami, od czasu do czasu wyślizgują się tam algorytm czasu wykładniczego . Który po wielu aktualizacjach… trwa wiecznie. Obecnie aktualizacje Win 7 są w podobnej sytuacji; zajmują dużo czasu, chociaż nie ma jeszcze oficjalnego wyjaśnienia dla tej ostatniej walki z powolnością. To ciekawe, że to “po prostu dzieje się” (do starych wersji), gdy mają nowe out. Cyniczny ja nie mogę powstrzymać się od wyobrażenia sobie, że ktoś może celowo chcieć, aby tak się stało, na wzór [starych] Windows jest powolny? Potrzebujesz nowej wersji. A może to tylko MS sposób na rozpoczęcie sezonu wakacyjnego.

Istnieje hotfix dla pewnego rodzaju powolności WU, który nie jest oferowany automatycznie (tzn. poprzez samą aktualizację): https://support.microsoft.com/en-us/kb/3102810 Niestety w moim przypadku nie zrobiło to wielkiej różnicy, a ja wypróbowałem go na dwóch różnych komputerach, jednym 32-bitowym i jednym 64-bitowym. Również jest od października, więc prawdopodobnie nie jest to najnowszy numer.

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

Jest dzisiaj około miliarda komputerów z systemem Windows. Każdy komputer PC posiada pewną kombinację sprzętu, akcesoriów, wersji systemu operacyjnego, języka, IE, wersji sterowników urządzeń, oprogramowania Microsoft na różnych poziomach poprawek, aktualizacji zabezpieczeń, itp. System Windows Update musi sortować wszystkie te kombinacje, aby zaoferować odpowiednie aktualizacje dla danego komputera. Każda aktualizacja posiada właściwości, w tym zależności i strukturę “nadrzędną”.

Pierwszym krokiem (pierwszym uruchomieniem) w skanowaniu jest określenie wersji systemu operacyjnego, SP, języka, producenta komputera PC, aby ustalić drzewo prawdopodobnych aktualizacji dla danego komputera. Na podstawie tego pierwszego skanowania, prawdopodobny zestaw identyfikatorów aktualizacji jest wysyłany do urządzenia, a lokalny klient oblicza, które aktualizacje są instalowane, zastępowane, itp. a następnie wysyła tę listę do serwera, a także buforuje lokalną kopię dla kolejnych skanów. Serwer odpowiada na zapytanie klienta o aktualizacje z opisami itp., które są wyświetlane w UI (w odpowiednim języku UI).

Raz dziennie, sprawdzana aktualizacja jest wykonywana w tle przez klienta Automatic Updates i odświeża lokalną pamięć podręczną zainstalowanych aktualizacji, dzięki czemu kolejne skanowania są tylko delta i szybkie. Są one przechowywane w folderze %windir%\softwaredistribution na komputerze.

Podobny proces jest wykonywany również dla wcześniej pobranych aktualizacji. Serwis nie będzie pobierał ponownie pakietów.

Znalazłem ten post, który pomoże nam przynajmniej zrozumieć co tak naprawdę dzieje się podczas wyszukiwania. Jest on pięknie napisany. Więc zamieszczam go jako taki. Możesz znaleźć oryginalny post na stronie tutaj

Zauważalna zmiana w czasie sprawdzania aktualizacji do instalacji była tam, gdy zmieniłem ustawienia aktualizacji Windows na Check for updates but let me choose whether to download and install them

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

Jest on powolny, ponieważ Windows Update i kilka innych komponentów systemu Windows używa silnika bazy danych Microsoft JET Blue , który cierpi na notorycznie złą wydajność i jest ogólnym świniakiem zasobów.

Podobnie jak inni wspomnieli, wydaje się, że w samym kodzie Windows Update występuje pewien stopień rekurencji, co prowadzi do słabej wydajności w miarę wzrostu liczby aktualizacji.

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

Moim zdaniem najlepiej jest po prostu włączyć aktualizacje Windows i przełączyć się na opcję, która pozwala na pobieranie aktualizacji, ale nie instaluje się automatycznie. W ten sposób możesz otrzymać to, co chcesz zainstalować, bez konieczności czekania na sprawdzenia lub pobierania plików w tle.

Teraz, aby odpowiedzieć, dlaczego jest to powolne. Myślę, że sprowadza się to po prostu do tego, że aktualizacje Windows zostały zbudowane z myślą o zmniejszeniu zauważalnego wpływu na użytkowników. Korzysta z usługi BITS (usługa inteligentnego transferu w tle), aby sprawdzać i pobierać aktualizacje.

Ponownie, głównym celem tej usługi jest praca w sposób, który nie przeszkadza użytkownikowi. Szybkości są celowo powolne, ponieważ Microsoft nigdy nie zamierzał, aby klienci włączali i wyłączali usługę aktualizacji co miesiąc.

To, na co można zwrócić uwagę, to uzyskanie własnej konfiguracji serwera WSUS. W ten sposób można odmówić aktualizacji w taki sam sposób, jak robią to administratorzy przedsiębiorstw i można zastosować lub odmówić tych wybranych aktualizacji do wszystkich swoich urządzeń windowsowych, które posiadasz. Uczynić z tego obowiązek selektywnej aktualizacji, a nie obowiązek.

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

Tylko po to, by dodać kolejny punkt danych. Muszę ostatnio wychować komputer z systemem Vista. Ręcznie zaktualizowałem Vistę z SP1 do SP2, ale sprawdzanie aktualizacji trwa wiecznie. Nic się nie działo przez 24+ godziny.

Zrobiłem kilka googli, którzy znaleźli rozwiązanie obejmujące instalację następujących aktualizacji: 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

Po pobraniu i ręcznym zainstalowaniu aktualizacji. Przeprowadziłem kontrolę aktualizacji przez 10 minut i znalazłem 200 aktualizacji. Pamiętaj, że to jest dla Visty, ale myślę, że może coś podobnego istnieje również dla Windows 7.

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

Miałem ten problem i to, co zrobiłem, to pozwoliłem uruchomić Windows Update po raz pierwszy w ciągu nocy na świeżo zainstalowanej maszynie. Porady jak to zrobić:

  • Przejdź do opcji energii, ustaw czas czuwania na “nigdy”

  • Włącz automatyczną aktualizację systemu Windows Update. Domyślny czas 03:00 rano jest ok, ponieważ proces wyszukiwania również trwa

  • Zaleca się również wykonanie procesu “Windows update needs to update some components …” za pierwszym razem (idzie szybko w porównaniu do ponad 200 aktualizacji w przypadku Windows 7)

Gdy wszystko zostało zaktualizowane poprawnie, znajdziesz ogromną ilość łatek (około 200), które zostały zainstalowane. Windows również defraggował i uruchamiał aktualizacje/skanowanie Windows Defender.

Następnie pozostałe cykle aktualizacji Windows (wyszukiwanie aktualizacji - install - reboot - wyszukiwanie aktualizacji - install - reboot - wyszukiwanie aktualizacji … aż # aktualizacji stanie się 0) działają znacznie szybciej.

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

Hej, myślę, że moja poprzednia odpowiedź nie była zbyt dobra, ale i tak dałem dobrą radę, jak sprawić, by komputer działał szybciej. Przy świeżej instalacji Windows 7 używam oryginalnego, ale wciąż z dyskami instalacyjnymi z aktualizacjami, tak czy owak, sugeruję, by spróbować aktualizacji kb3102810 i kb3050256, by zainstalować je zaraz po świeżej instalacji, które mogą znacznie zwiększyć szybkość wyszukiwania i instalacji aktualizacji.

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

Nie hashing, ale tak, to sprawdza dużo (tak głęboko jak niektóre wersje plików DLLs). Jest powolny bez względu na to, jakiego systemu używasz.

Jako rozwiązanie, trzymaj go off i kiedy jest dzień lub noc nie potrzebujesz systemu zbyt wiele, włącz go, zmusić go do sprawdzenia aktualizacji i niech je wszystkie zainstalować.