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

Perché il controllo di Windows Update è così lento?

Ho i PC Windows 7 che hanno l'aggiornamento automatico disattivato. Faccio aggiornamenti in batch una volta al mese circa. Ma ogni volta il “controllo dell'aggiornamento” richiede dai 15 ai 30 minuti. Non capisco perché il controllo degli aggiornamenti può essere così lento? Mi chiedo cosa stia succedendo in background. È l'hashish informatico? I miei PC con gli aggiornamenti automatici abilitati subiscono la stessa sorte ogni volta che si avviano (solo che non ne ero a conoscenza)?

Réponses (12)

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

Il controllo degli aggiornamenti è così lento perché:

  • Windows 7 usa Component-Based Servicing , il che significa che Windows Update deve lavorare in modo ridicolo per determinare le dipendenze/interdipendenze di file e componenti, mantenere versioni affiancate di vecchi file/componenti, rendendo comunque possibile la disinstallazione di singoli aggiornamenti/componenti ma senza rompere altri aggiornamenti/componenti, tenendo conto della supercedenza e Dio solo sa cos'altro. Il codice che fa tutto questo deve essere infernalmente complesso.

  • Windows 7 64-bit deve mantenere sia le versioni a 32-bit che quelle a 64-bit di ogni aggiornamento.

  • Windows deve mantenere sia le versioni GDR che LDR di ogni aggiornamento, il che significa che su Windows 7 64-bit si ottengono 32-bit GDR, 32-bit LDR, 64-bit GDR, 64-bit LDR, 64-bit LDR per ogni aggiornamento.

  • Il codice dietro Windows Update è altamente inefficiente, probabilmente a causa della sua complessità concettuale. Le mie osservazioni degli ultimi anni sono che, con l'aumento del numero totale di aggiornamenti rilasciati, il tempo di controllo degli aggiornamenti è aumentato in modo quasi esponenziale. Per me questo è indicativo dell'impiego di qualche tipo di algoritmo ricorsivo, magari per determinare la superscedenza o risolvere le dipendenze.

Purtroppo per noi, Microsoft non ama parlare di interni di Windows e quindi finiamo per doverlo capire da soli o speculare.

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

Nelle risposte esistenti sono stati trattati diversi aspetti del problema. Cercherò di collegarle tra loro elencando le cause in modo generale, senza ripetere quanto già detto:

  1. Il meccanismo di Microsoft Windows Update è estremamente sofisticato, il che purtroppo significa anche complicato
  2. WU deve supportare un numero incalcolabile di combinazioni hardware e software
  3. 3. WU deve applicare gli aggiornamenti nell'ordine corretto. Windows 7 è un sistema più vecchio, e SP2 è in ritardo e probabilmente non arriverà mai, il che rende per moltissimi aggiornamenti
  4. Negli ultimi anni, Microsoft è stata sotto una grande pressione per risolvere numerosi problemi di sicurezza, che ha portato a moltissime correzioni frenetiche, poi correzioni di correzioni e così via alla n'th generazione
  5. 6. Microsoft non è stata in grado di ottimizzare a sufficienza il meccanismo di aggiornamento, che è in generale un algoritmo esponenziale, con il risultato di un algoritmo di forza bruta piuttosto lento.
  6. I server WU di Microsoft sono a volte sovraccaricati.

Vediamo questi punti più in dettaglio.

Windows Update complexities

Dopo il rilascio di un aggiornamento, esso può entrare in tre ulteriori fasi diverse nel corso del tempo: Revisioni, sostituzione e scadenza.

Revisioni di aggiornamento : Quando vengono apportate modifiche a un aggiornamento rilasciato in precedenza, si chiama Revisione di aggiornamento, in cui alcuni pezzi del download vengono modificati. Si tratta di una sostituzione parziale, non completa, dell'aggiornamento.

Aggiornamenti sostituiti : Si tratta di una sostituzione completa di una o più versioni precedenti. A volte Microsoft avvolge più versioni in un unico pacchetto, e quel pacchetto sostituisce i suoi aggiornamenti incapsulati.

Aggiornamenti scaduti : Si tratta di aggiornamenti rimossi dall'elenco degli aggiornamenti validi. Tali aggiornamenti non sono più applicabili e non verranno rilevati per l'installazione. La maggior parte delle volte, un aggiornamento è scaduto dopo essere stato sostituito da un aggiornamento sostituito.

Updates hanno anche un meccanismo di dipendenza, il che significa che alcuni aggiornamenti possono richiedere l'applicazione di altri aggiornamenti.

Gli aggiornamenti scaduti sono problematici per le prestazioni di WU, poiché purtroppo non vengono rimossi dal computer, quindi partecipano ancora ai calcoli, e ce ne sono così tanti. Qualche miglioramento può essere ottenuto utilizzando Disk Cleanup per Rimuovere gli Aggiornamenti di Windows non aggiornati (prendere prima un'immagine di backup del disco di sistema, poiché anche il WU è molto fragile).

Calcoli WU

A causa dell'enorme numero di combinazioni possibili, Microsoft mantiene tutti gli aggiornamenti sui server WU nel formato di un albero gigantesco. La decisione su quali aggiornamenti devono essere applicati viene effettuata da un algoritmo di potatura ad albero, che tiene conto dell'hardware e del software installati dal cliente, nonché di tutti gli aggiornamenti già installati, il che è di per sé un grande insieme di fatti che devono essere tutti applicati con successo durante la potatura.

L'algoritmo non è garantito per il successo, il che significa che WU è perfettamente in grado di distruggere il sistema operativo o addirittura di renderlo non avviabile. Questo è del tutto comprensibile, ad esempio prendendo un aggiornamento A1, con la revisione A2, dove è stato rilasciato un aggiornamento B che dipende da A tra A1 e A2. Ora andate a capire se l'ordine di installazione deve essere A1-B-A2 o A1-A2-B, quando la decisione sbagliata può essere mortale.

Server WU sovraccaricati

Wikipedia ha questo da dire su Windows Update statistics :

A partire dal 2008, Windows Update aveva circa 500 milioni di client, elaborava circa 350 milioni di scansioni uniche al giorno, e manteneva una media di 1,5 milioni di connessioni simultanee alle macchine client. Il Patch Tuesday, il giorno in cui Microsoft rilascia tipicamente nuovi aggiornamenti software, il traffico in uscita potrebbe superare i 500 gigabit al secondo.

Questi numeri sono probabilmente raddoppiati ormai, e spiegano perché i server WU sono a volte irraggiungibili. Sto usando l'opzione WU “Controlla gli aggiornamenti ma lasciami scegliere”, e la mia esperienza personale è che ci sono giorni e orari in cui il controllo degli aggiornamenti richiede più tempo di quello che sono disposto ad aspettare, richiedendo un rinvio.

La lunga storia di Windows 7

Windows 7 è stata rilasciata il 22 luglio 2009. Dopo circa 17 mesi, il 22 febbraio 2011 è uscito il Service Pack 1 (SP1). Si tratta di circa 4,5 anni fa, il che significa che SP2 è atteso da tempo.

Il lato positivo di un Service Pack è che la sua installazione cancella l'intera storia degli aggiornamenti, così che in effetti WU parte da zero, esattamente come dopo una nuova installazione di Windows. Questo naturalmente velocizza enormemente tutti i calcoli, poiché ci sono meno aggiornamenti da prendere in considerazione.

Il numero di aggiornamenti esistenti dall'SP1 spiega perché i calcoli di WU sono così lenti oggi. Per Microsoft il problema può essere risolto “semplicemente” con l'aggiornamento al più recente Windows 8.1 o Windows 10, quindi WU avrà un numero inferiore di aggiornamenti da prendere in considerazione.

Conclusione

As Microsoft continua ancora ad applicare numerosi aggiornamenti a Windows 7, WU continuerà a rallentare solo col passare del tempo.

Una possibile ottimizzazione è quella di Rimuovere gli aggiornamenti di Windows obsoleti . Un'altra è quella di utilizzare l'opzione WU “Controlla gli aggiornamenti ma lasciami scegliere”, e controllare gli aggiornamenti al mattino presto o a tarda notte.

La maggior parte degli aggiornamenti si applica anche a Windows 8 e 10, quindi l'onere per i server WU di Microsoft si moltiplicherà solo quando Windows 10 sarà presto rilasciato. Microsoft sembra anche ripartire la larghezza di banda dei suoi server WU secondo le proprie politiche, con l'accento sul servire i sistemi operativi più recenti, quindi dovremmo aspettarci un altro rallentamento per Windows 7 una volta rilasciato Windows 10, insieme ad aggiornamenti sproporzionatamente più veloci per Windows 10.

Se il WU è troppo lento, l'unica vera soluzione è l'aggiornamento a una versione successiva di Windows.

Buone notizie : è arrivato l'SP2 per Windows 7 (e 8.1)

Microsoft ha pubblicato quello che in realtà è l'SP2 per Windows 7 e 8.1. Questo aggiornamento non sarà disponibile da Windows Update per qualche motivo sconosciuto, quindi deve essere scaricato e installato manualmente.

Leggi come ottenerlo nell'articolo : Microsoft revisiona l'aggiornamento di Windows 7 e 8.1 – ma non chiamarlo service pack .

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

Questo problema è andato e venuto nel corso degli anni con diverse correzioni lungo il percorso, quindi ecco la mia guida aggiornata a questo problema a partire da questa data 5 gennaio 2016

Controllare la sezione EDIT qui sotto, c'è un modo molto più veloce per aggiornare completamente Windows 7 SP1 dopo un'installazione pulita a partire da maggio 2016.

Questo è quello che faccio quando reinstallare W7 con SP1 o ho problemi con l'aggiornamento di Windows bloccato sul controllo degli aggiornamenti.

Se il Service Pack 1 non è installato, installarlo prima di seguire questa guida. Scaricare KB-3138612 e salvarlo dove lo si può trovare in seguito Scaricare SUR Tool salvarlo nello stesso posto

Riavviare il PC e scollegarsi da internet prima del caricamento di Windows, questo è importante perché ad ogni avvio le finestre controlleranno gli aggiornamenti in background e questo avvierà il controllo degli aggiornamenti si bloccherà di nuovo e impedirà l'installazione dei pacchetti scaricati fino al termine del controllo, quindi scollegarsi da internet prima del caricamento di Windows impedisce questo.

Una volta avviato, installare KB-3138612, se è necessario riavviare, farlo e rimanere disconnessi da internet.

Ora installare il pacchetto SUR Tool, questo è un grande pacchetto e installerà molti aggiornamenti insieme alla pulizia e alla riparazione del negozio di aggiornamenti di Windows. Ridurrà anche il numero di aggiornamenti di Windows che dovranno essere installati in seguito.

Dopo l'installazione del pacchetto SUR riavviare, connettersi a internet e fare un aggiornamento manuale di Windows, dovrebbe funzionare molto più velocemente ora. Anche dopo queste correzioni ho visto che alcuni PC W7 impiegano fino a un'ora per finire di controllare gli aggiornamenti se lanciati dal Pannello di controllo manualmente.

Se avete altri problemi con gli aggiornamenti di Windows e i 2 aggiornamenti di cui sopra sono installati, scaricate questo strumento di correzione di Microsoft Windows Update (tasto destro del mouse “salva il link con nome”) eseguitelo e selezionate la modalità aggressiva per resettare completamente gli aggiornamenti di Windows. Riavviare e provare di nuovo gli aggiornamenti di Windows dal Pannello di controllo. Questo strumento risolve i problemi quando gli altri strumenti di Microsoft fixit falliscono, almeno secondo la mia esperienza.

Aggiornamento: Microsoft ha rilasciato un enorme rollup di aggiornamento per Windows 7 SP1 , questo è simile a un service pack ma non lo chiamano così. Questo renderà molto più veloce l'aggiornamento di Windows 7 dopo un'installazione pulita, non ci saranno più problemi di aggiornamento di Windows e molti riavvii. Questo rollup di aggiornamento porterà la corrente del sistema alla patch martedì di aprile 2016.

Questo non viene rilasciato tramite Windows Update, bisogna usare Internet Explorer per ottenerlo, aprire IE e andare a questo indirizzo

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

Digitare nella casella di ricerca 3125574 e premere il tasto invio.

Ora vedrete tutte le versioni di questo rollup, selezionate quella che vi serve e scaricatela da qualche parte, la troverete più tardi.

&005

Usate anche la pagina del catalogo di Windows Update per scaricare e installare prima questo aggiornamento, 3020369 , è un prerequisito per il rollup, poi installate 3125574, assicuratevi anche di essere scollegati da internet quando applicate questi aggiornamenti.

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

Quando si usa ETW/WPR/WPA per controllare l'utilizzo della CPU durante la scansione si vede che l'utilizzo della CPU proviene da wuaueng.dll!CUpdatesToPruneList::AddSupersedenceInfoIfNeeded che è chiamato da wuaueng.dll!CAgentUpdateManager::FindUpdates. Il metodo AddSupersedenceInfoIfNeeded è la cosa più lenta. Questo fa quello che il nome indica e guarda se gli aggiornamenti di Windows 7 offerti/installati sono ancora necessari o sostituiti (obsoleti/sostituiti da quelli più recenti). Questo è molto lento.

Con l'ultimo aggiornamento del client di Windows Update del giugno 2016 , che fa parte del Windows 7 luglio 2016 Update Rollup , la ricerca degli aggiornamenti è di nuovo veloce.

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

  4. La ricerca di nuovi aggiornamenti richiede solo poco più di 1 minuto. Per velocizzare la configurazione dell'aggiornamento KB3172605, interrompere il servizio WindowsUpdate (net stop wuauserv).

Questo trucco di arresto del servizio WU velocizza l'installazione di molto, quando si installano diversi aggiornamenti 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"

In Windows 10 Microsoft ha risolto il problema seguendo il mio suggerimento e rendere gli aggiornamenti cumulativi. Qui è necessario solo 1 grande aggiornamento per essere al livello di patch corrente. Questo lento controllo non è più necessario.

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

Se le esperienze passate con l'aggiornamento XP sono un'indicazione, occasionalmente si lasciano sfuggire un algoritmo di tempo esponenziale . Che una volta che si hanno molti aggiornamenti… ci vuole un'eternità. Attualmente gli aggiornamenti di Win 7 si trovano in una situazione simile; ci vuole molto tempo, anche se non c'è ancora una spiegazione ufficiale per quest'ultima lentezza. È interessante il fatto che questo “succede e basta” (alle vecchie versioni) quando ne esce una nuova. Il cinico me non può fare a meno di immaginare che qualcuno possa volere che ciò accada intenzionalmente, sulla falsariga delle [vecchie] finestre è lento? C'è bisogno di una nuova versione. O forse è solo il modo MS di iniziare la stagione delle vacanze.

C'è un hotfix per una sorta di lentezza di WU, che non viene offerto automaticamente (cioè tramite l'aggiornamento stesso): https://support.microsoft.com/en-us/kb/3102810 Ahimè non ha fatto una vera differenza nel mio caso, e l'ho provato su due computer diversi uno a 32 bit e uno a 64 bit. Inoltre è in circolazione da ottobre, quindi probabilmente non è per l'ultimo numero.

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

Oggi ci sono circa un miliardo di PC con Windows. Ogni PC ha una qualche combinazione di hardware, accessori, versione del sistema operativo, lingua, IE, versione del driver del dispositivo, software Microsoft a vari livelli di patch, aggiornamenti di sicurezza, ecc. Il sistema Windows Update deve ordinare tutte queste combinazioni per offrire gli aggiornamenti giusti per un singolo PC. Ogni aggiornamento ha proprietà che includono le dipendenze e una struttura di “supercedenza”.

Il primo passo (prima esecuzione) nella scansione è quello di determinare la versione del sistema operativo, SP, lingua, produttore del PC per potare l'albero dei probabili aggiornamenti per il PC. Sulla base di questa prima scansione, un probabile insieme di ID di aggiornamento viene inviato al dispositivo e i calcoli del client locale che gli aggiornamenti sono installati, sostituiti, ecc. e poi invia l'elenco al server e ne mette in cache una copia in locale per le scansioni successive. Il server risponde alla richiesta di aggiornamenti del client con descrizioni, ecc. che vengono visualizzate nell'interfaccia utente (nella lingua dell'interfaccia utente appropriata).

Una volta al giorno, un aggiornamento di controllo viene effettuato dal client Aggiornamenti automatici in background e aggiorna la cache locale degli aggiornamenti installati, in modo che le scansioni successive siano solo un delta e veloci. Questi vengono memorizzati nella cartella %windir%\softwaredistribution del PC.

Un processo simile viene eseguito anche per gli aggiornamenti scaricati in precedenza. Il servizio non scaricherà nuovamente i pacchetti.

Ho trovato questo post che ci aiuterà almeno a capire cosa sta realmente accadendo durante la ricerca. È scritto in modo eccellente. Quindi lo pubblicherò come tale. Potete trovare il post originale in qui

Un notevole cambiamento nel tempo impiegato per controllare l'aggiornamento per l'installazione era lì quando ho cambiato le impostazioni di aggiornamento di Windows a Check for updates but let me choose whether to download and install them

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

È lento perché Windows Update e diversi altri componenti del sistema Windows usano il motore di database Microsoft JET Blue , che soffre di prestazioni notoriamente pessime ed è un maiale di risorse.

Come altri hanno menzionato, sembra esserci anche un certo grado di ricorsione nel codice di Windows Update stesso, che porta a prestazioni scadenti con l'aumento del numero di aggiornamenti.

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

Secondo me, la cosa migliore è attivare gli aggiornamenti di windows e passare all'opzione che consente di scaricare gli aggiornamenti ma non di installarli automaticamente. In questo modo, è possibile ottenere ciò che si desidera installare senza dover attendere i controlli o il download di file in background.

Ora, per rispondere al perché è lento. Penso che si riduca semplicemente al fatto che gli aggiornamenti di windows sono stati costruiti con la riduzione dell'impatto notevole per gli utenti. Utilizza il servizio BITS (servizio di trasferimento intelligente in background) per controllare e scaricare gli aggiornamenti.

Anche in questo caso, l'obiettivo di questo servizio è quello di lavorare in modo da non disturbare l'utente. Le velocità sono intenzionalmente lente di progettazione, poiché Microsoft non ha mai inteso che i clienti Microsoft accendessero e spegnessero il servizio di aggiornamento ogni mese.

Quello che si potrebbe esaminare è la configurazione del proprio server WSUS. In questo modo è possibile negare gli aggiornamenti più o meno come fanno gli amministratori aziendali e si possono applicare o negare gli aggiornamenti scelti a tutti i dispositivi Windows che si possiedono. Fare questo lavoro di aggiornamento selettivo, meno faticoso.

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

Solo per aggiungere un altro punto dati. Di recente ho dovuto portare su un PC Vista. Ho aggiornato manualmente Vista da SP1 a SP2, ma il controllo dell'aggiornamento richiede un'eternità. Non è successo niente per più di 24 ore.

Ho fatto qualche googling che ha trovato una soluzione che include l'installazione dei seguenti aggiornamenti: 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

Dopo aver scaricato e installato gli aggiornamenti manualmente. Ho eseguito il controllo degli aggiornamenti per 10 minuti e ha trovato 200 aggiornamenti. Tenete presente che questo è per Vista, ma penso che forse qualcosa di simile esiste anche per Windows 7.

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

Ho avuto questo problema e quello che ho fatto è stato lasciare che Windows Update funzionasse durante la notte per la prima volta su una macchina appena installata. Suggerimenti per farlo con successo:

  • Vai alle opzioni energetiche, imposta il tempo di standby su “mai”

  • Attiva l'aggiornamento automatico di Windows. L'orario predefinito delle 03:00AM è ok, poiché anche il processo di ricerca richiede tempo

  • Si consiglia anche di fare un processo di “Windows update needs to update some components …” la prima volta (va velocemente rispetto agli oltre 200 aggiornamenti nel caso di Windows 7)

Quando tutto è stato aggiornato correttamente, si trova una quantità enorme di patch (circa 200) sono state installate. Anche Windows ha deframmentato ed eseguito gli aggiornamenti/scansioni di Windows Defender.

Dopo di che, i restanti cicli di Windows Update (ricerca degli aggiornamenti - installazione - riavvio - ricerca degli aggiornamenti - installazione - riavvio - ricerca degli aggiornamenti … fino a quando gli aggiornamenti # non sono diventati 0) funzionano molto più velocemente.

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

Ehi, penso che la mia risposta precedente non fosse buona, ma ho dato un buon consiglio su come far funzionare il pc più velocemente in ogni caso. Alla nuova installazione di windows 7 uso il disco di installazione originale, ma sempre con gli aggiornamenti in streaming, in ogni caso, se provate gli aggiornamenti kb3102810 e kb3050256 per installare subito dopo la nuova installazione, questi due possono aumentare significativamente la velocità sia di ricerca che di installazione degli aggiornamenti.

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

Non è hashing, ma sì, sta controllando molto (profondo come la versione di alcuni file DLL). E’ lento, non importa quale sistema si usi.

Come soluzione, tenetelo spento e quando c'è un giorno o una notte non avete troppo bisogno del sistema, accendetelo, forzatelo a controllare gli aggiornamenti e lasciateli installare tutti.