Condividi tramite


Risolvere i problemi relativi all'utilizzo elevato della CPU in un server WSUS

Questo articolo presenta diverse procedure per la risoluzione dei problemi relativi all'utilizzo elevato della CPU nel servizio Windows Server Update (WSUS).

Nota

Utenti privati: questo articolo è destinato solo agli agenti di supporto tecnico e ai professionisti IT. Se si sta cercando assistenza per un problema, rivolgersi alla community Microsoft.

Versione originale del prodotto: Configuration Manager (current branch)
Numero KB originale: 4489045

L'utilizzo elevato della CPU può verificarsi se il database WSUS (SUSDB) non è pulito. Dopo che il server viene eseguito per un po', possono essere presenti troppi aggiornamenti per il server WSUS da fornire ai client.

In questo caso, se si verifica un errore o si installa un nuovo server WSUS o un problema non correlato impedisce ai client di eseguire l'analisi per alcuni giorni, tutti i client potrebbero iniziare l'analisi e continuare a eseguire l'analisi costantemente e non completare mai effettivamente un'analisi o installare gli aggiornamenti.

Per risolvere il problema, è necessario pulire il server WSUS e rifiutare gli aggiornamenti sostituiti. Seguire i passaggi nell'ordine seguente come routine di pulizia mensile. Tuttavia, se si stanno risolvendo problemi di CPU elevata, è consigliabile eseguire prima il passaggio 4 e quindi il passaggio 3. È consigliabile rinviare i passaggi 1 e 2 fino a quando il livello di utilizzo della CPU non diminuisce.

Passaggio 1: Eseguire il backup del database WSUS

Il backup del database WSUS può migliorare leggermente le prestazioni.

Passaggio 2: Eseguire la Pulizia guidata server WSUS

L'esecuzione della Pulizia guidata server WSUS può migliorare le prestazioni del database. Tuttavia, non riduce il numero di aggiornamenti che i client stanno analizzando. Inoltre, l'esecuzione della procedura guidata può richiedere molte ore o giorni senza risolvere necessariamente il problema.

Passaggio 3: Reindicizzare il database WSUS

La reindicizzazione del database WSUS può migliorare le prestazioni del database se è frammentato. A tale scopo, eseguire i comandi seguenti.

  1. Aggiornare l'oggetto statistics usando l'opzione FULLSCAN .

    Use <dbname>
    Go
    Exec sp_msforeachtable 'update statistics ? with fullscan'
    Go
    
  2. Ricompilare gli indici.

    Use <dbname>
    Go
    Exec sp_msforeachtable 'DBCC DBREINDEX (''?'')'
    Go
    

Passaggio 4: Rifiutare gli aggiornamenti sostituiti

Il rifiuto degli aggiornamenti sostituiti riduce immediatamente il numero di aggiornamenti analizzati.

Per rifiutare gli aggiornamenti sostituiti o eseguire qualsiasi azione WSUS in una situazione in cui il pool di applicazioni WSUS viene riciclato troppo rapidamente, è prima possibile impedire ai client di connettersi al pool di applicazioni WSUS. A tale scopo, connettersi al server WSUS usando la console WSUS e quindi sincronizzare il server WSUS con il server upstream e con Configuration Manager (se usato). Se si usa Configuration Manager, è importante eseguire la sincronizzazione con la versione più recente dell'aggiornamento nella console di Configuration Manager in modo che i client visualizzeranno che WSUS dispone di aggiornamenti correnti e validi.

Per disconnettere i client, usare uno dei metodi seguenti.

Metodo 1: Creare un pool di applicazioni di test

  1. Fare clic con il pulsante destro del mouse su Pool di applicazioni nell'area Gestione Internet Information Services (IIS) e quindi selezionare Aggiungi pool di applicazioni per creare un pool di applicazioni di test.

  2. Selezionare Servizio> Web client Gestisciimpostazioni avanzateapplicazione> e quindi modificare il pool di applicazioni nel pool di applicazioni di test creato.

Metodo 2: Modificare la porta per il sito Web WSUS

  1. Selezionare WsUS Administration Web SiteEdit Bindings (Modifica associazioni sito > Web amministrazione WSUS).

  2. Modificare la console WSUS per connettersi alla nuova porta, eseguire lo script e eseguire la sincronizzazione con USS.

    Nota

    Questo metodo causerà l'esito negativo della sincronizzazione con Configuration Manager.

Metodo 3: Usare le regole del firewall per bloccare tutti gli indirizzi IP client o consentire solo le connessioni in ingresso al server USS e al server del sito

Dopo la disconnessione dei client dal server WSUS, è possibile eseguire lo script di PowerShell usando i -skipdecline parametri (e -exclusion punto, se necessario) per determinare il numero totale di aggiornamenti sostituiti che possono essere rifiutati. Eseguire quindi di nuovo lo script usando -skipdecline per rifiutare effettivamente gli aggiornamenti.

Nei casi estremi in cui lo script di PowerShell non può essere eseguito a causa di timeout, è possibile aggiungere la colonna di sostituzione alla console WSUS quando vengono visualizzati tutti gli aggiornamenti e quindi rifiutare manualmente gli aggiornamenti seguendo questa procedura:

  1. Aprire Windows Update Services Microsoft Management Console (MMC).
  2. Selezionare la visualizzazione Tutti Aggiornamenti. A tale scopo, impostare la visualizzazione in modo da visualizzare lo stato approvazione di Qualsiasi ad eccezione di Rifiutato con lo stato Qualsiasi e quindi fare clic su Aggiorna.
  3. Fare clic con il pulsante destro del mouse sulle intestazioni di colonna e quindi scegliere Sostituzione.
  4. Fare clic con il pulsante sinistro del mouse sulla colonna Supersedence per eseguire l'ordinamento in base alla sostituzione.
  5. Selezionare e rifiutare gli aggiornamenti sostituiti.

Il problema di prestazioni può in genere essere risolto dopo che l'aggiornamento valido è stato ridotto a meno di 7.000 connessioni (ma è preferibile meno di 5.000). Potrebbe essere necessario limitare le connessioni al sito Web di amministrazione di WSUS per alcuni giorni per consentire ai client di completare tutte le analisi. È anche consigliabile reindicizzare il database dopo il rifiuto degli aggiornamenti sostituiti. Se si usa Configuration Manager, eseguire anche una sincronizzazione tra WSUS e Configuration Manager mentre i client non si connettono.

Dopo aver completato questi passaggi, è necessario limitare le connessioni se l'utilizzo della CPU è ancora troppo elevato. A tal fine, attenersi alla seguente procedura:

  1. Aprire Ilsito WebGestioneWSUSdi Gestione Internet Information Services (IIS)> Gestire il > sito > Web >Impostazioni avanzateLimita il>numero massimo di connessioni simultanee.

  2. Impostare il valore su 50 o 100.

  3. Monitorare il processo W3Wp in Gestione attività e la CPU totale nel server.

  4. Aprire Monitoraggio risorse di Gestione > attività e prendere nota del PID per il pool di applicazioni WSUS. Se non si è certi del processo w3wp che esegue il pool di applicazioni WSUS, è possibile usare Appcmd (Metodo 2) per identificare facilmente il PID.

Per impostazione predefinita, il PID deve cambiare solo una volta ogni 29 ore. Se cambia più spesso, il limite di connessione potrebbe essere troppo elevato per l'impostazione corrente della CPU e della memoria per il pool di applicazioni WSUS.

Monitorare la memoria w3wp stabile e l'uso complessivo stabile della CPU di meno del 90%. Man mano che l'uso della CPU e della memoria a stato stazionario diminuisce, è possibile aumentare lentamente i limiti di connessione al sito Web di amministrazione di WSUS. A seconda del tipo di situazione in cui ci si trovi, l'utilizzo della memoria potrebbe richiedere diversi giorni per tornare a uno stato stabile. L'aumento dei limiti di connessione potrebbe richiedere piccoli incrementi e nel corso di diversi giorni.

Riferimento

Cpu elevata/memoria elevata in WSUS dopo gli aggiornamenti di martedì