Freigeben über


Problembehandlung bei hoher CPU-Auslastung auf einem WSUS-Server

In diesem Artikel werden mehrere Verfahren zur Problembehandlung bei hoher CPU-Auslastung in Windows Server Update Service (WSUS) vorgestellt.

Notiz

Private Benutzer: Dieser Artikel ist nur für technische Supportmitarbeiter und IT-Experten vorgesehen. Wenn Sie nach Hilfe zu einem Problem suchen, bitten Sie die Microsoft Community.

Ursprüngliche Produktversion: Configuration Manager (Current Branch)
Ursprüngliche KB-Nummer: 4489045

Hohe CPU-Auslastung kann auftreten, wenn die WSUS-Datenbank (SUSDB) nicht sauber ist. Nachdem der Server eine Weile ausgeführt wurde, kann es zu viele Updates für den WSUS-Server geben, um die Clients bereitzustellen.

Wenn in diesem Fall ein Fehler auftritt oder ein neuer WSUS-Server installiert ist oder ein nicht verwandtes Problem auftritt, hindern Clients ein paar Tage lang an der Überprüfung, können alle Clients mit dem Scannen beginnen und weiterhin ständig scannen und nie tatsächlich eine Überprüfung oder Installation von Updates abschließen.

Um das Problem zu beheben, müssen Sie den WSUS-Server bereinigen und abgelöste Updates ablehnen. Führen Sie die schritte in der folgenden Reihenfolge als monatliche Bereinigungsroutine aus. Wenn Sie jedoch hohe CPU-Probleme beheben, empfehlen wir, zuerst Schritt 4 und dann Schritt 3 auszuführen. Sie sollten die Schritte 1 und 2 zurückstellen, bis die CPU-Auslastungsstufe verringert wird.

Schritt 1: Sichern der WSUS-Datenbank

Durch das Sichern der WSUS-Datenbank kann die Leistung leicht verbessert werden.

Schritt 2: Ausführen des WSUS-Serverbereinigungs-Assistenten

Das Ausführen des WSUS-Serverbereinigungs-Assistenten kann die Datenbankleistung verbessern. Die Anzahl der Updates, die von den Clients gescannt werden, wird jedoch nicht reduziert. Darüber hinaus kann es viele Stunden oder Tage dauern, bis der Assistent ausgeführt wird, ohne das Problem unbedingt zu beheben.

Schritt 3: Erneutes Indizieren der WSUS-Datenbank

Durch erneutes Indizieren der WSUS-Datenbank kann die Datenbankleistung verbessert werden, wenn sie fragmentiert ist. Führen Sie dazu die folgenden Befehle aus.

  1. Aktualisieren Sie die statistics Option mithilfe der FULLSCAN Option.

    Use <dbname>
    Go
    Exec sp_msforeachtable 'update statistics ? with fullscan'
    Go
    
  2. Erstellen Sie die Indizes neu.

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

Schritt 4: Ablehnen von abgelösten Updates

Degressierende abgelöste Updates reduzieren sofort die Anzahl der Updates, die gescannt werden.

Um abgelöste Updates abzulehnen oder WSUS-Aktionen in einer Situation auszuführen, in der der WSUS-Anwendungspool zu schnell wiederverwendet wird, können Sie zunächst verhindern, dass die Clients eine Verbindung mit dem WSUS-Anwendungspool herstellen. Stellen Sie dazu mithilfe der WSUS-Konsole eine Verbindung mit dem WSUS-Server her, und synchronisieren Sie dann den WSUS-Server mit dem Upstreamserver und mit Configuration Manager (sofern er verwendet wird). Wenn Sie Configuration Manager verwenden, ist es wichtig, die neueste Version des Updates in der Configuration Manager-Konsole zu synchronisieren, damit Clients sehen, dass WSUS über aktuelle und gültige Updates verfügt.

Verwenden Sie eine der folgenden Methoden, um die Clients zu trennen.

Methode 1: Erstellen eines Testanwendungspools

  1. Klicken Sie im Bereich Internetinformationsdienste (IIS)-Manager mit der rechten Maustaste auf Anwendungspools, und wählen Sie dann "Anwendungspool hinzufügen" aus, um einen Testanwendungspool zu erstellen.

  2. Wählen Sie clientweb service>Manage application>Advanced settings, and then change the application pool to the test application pool that you created.

Methode 2: Ändern des Ports für die WSUS-Website

  1. Wählen Sie die WSUS-Verwaltungswebsite>"Bindungen bearbeiten" aus.

  2. Ändern Sie die WSUS-Konsole, um eine Verbindung mit dem neuen Port herzustellen, führen Sie das Skript aus, und synchronisieren Sie es mit USS.

    Notiz

    Diese Methode führt dazu, dass die Synchronisierung mit Configuration Manager fehlschlägt.

Methode 3: Verwenden von Firewallregeln, um alle Client-IP-Adressen zu blockieren oder nur eingehende USS- und Standortserververbindungen zuzulassen

Nachdem die Clients vom WSUS-Server getrennt wurden, können Sie das PowerShell-Skript mit den -skipdecline Parametern (und -exclusion punkt, falls erforderlich) ausführen, um die Gesamtanzahl der abgelösten Updates zu ermitteln, die abgelehnt werden können. Führen Sie dann das Skript erneut aus, indem -skipdecline Sie die Updates tatsächlich ablehnen.

In extremen Fällen, in denen das PowerShell-Skript aufgrund von Timeouts nicht ausgeführt werden kann, können Sie der WSUS-Konsole die Spalte "Supersedence" hinzufügen, wenn alle Updates angezeigt werden, und dann die Updates manuell ablehnen, indem Sie die folgenden Schritte ausführen:

  1. Öffnen Sie die Microsoft Management Console (MMC) von Windows Update Services.
  2. Wählen Sie die Ansicht "Alle Updates" aus. Legen Sie dazu die Anzeige so fest, dass der Genehmigungsstatus "Any" mit Ausnahme von "Abgelehnt " mit dem Status "Any" angezeigt wird, und klicken Sie dann auf "Aktualisieren".
  3. Klicken Sie mit der rechten Maustaste auf die Spaltenüberschriften, und wählen Sie dann "Supersedence" aus.
  4. Klicken Sie mit der linken Maustaste auf die Spalte "Supersedence ", um nach Supersedence zu sortieren.
  5. Wählen Sie die abgelösten Updates aus, und lehnen Sie sie ab.

Das Leistungsproblem kann normalerweise behoben werden, nachdem das gültige Update auf weniger als 7.000 Verbindungen reduziert wurde (aber weniger als 5.000 werden bevorzugt). Möglicherweise müssen Sie verbindungen mit der WSUS-Verwaltungswebsite einige Tage einschränken, damit die Clients alle Scans abschließen können. Außerdem wird empfohlen, die Datenbank neu indizieren, nachdem Sie abgelöste Updates abgelehnt haben. Wenn Sie Configuration Manager verwenden, führen Sie auch eine Synchronisierung zwischen WSUS und Configuration Manager durch, während die Clients keine Verbindung herstellen.

Nachdem Sie diese Schritte ausgeführt haben, sollten Sie Verbindungen einschränken, wenn die CPU-Auslastung noch zu hoch ist. Gehen Sie dazu wie folgt vor:

  1. Öffnen Sie Internetinformationsdienste (IIS)-Manager>WSUS-Verwaltungswebsite ">Website>verwalten" erweiterte Einstellungen>Grenzwerte>für maximale gleichzeitige Verbindungen.

  2. Legen Sie den Wert auf 50 oder 100 fest.

  3. Überwachen Sie den W3Wp-Prozess im Task-Manager und die gesamte CPU auf dem Server.

  4. Öffnen Sie den Ressourcenmonitor des Task-Managers>, und notieren Sie sich die PID für den WSUS-Anwendungspool. Wenn Sie nicht sicher sind, welcher W3WP-Prozess den WSUS-Anwendungspool ausführt, können Sie Appcmd (Methode 2) verwenden, um die PID einfach zu identifizieren.

Standardmäßig sollte die PID nur einmal alle 29 Stunden geändert werden. Wenn sich die Verbindung häufiger ändert, kann ihr Verbindungsgrenzwert für die aktuelle CPU- und Speichereinstellung für den WSUS-Anwendungspool zu hoch sein.

Überwachen Sie den stabilen w3WP-Speicher und die stabile Gesamtauslastung der CPU von weniger als 90 Prozent. Da sich die CPU- und Arbeitsspeichernutzung im stabilen Zustand verringert, können Sie die Verbindungsgrenzwerte auf der WSUS-Verwaltungswebsite langsam erhöhen. Je nachdem, in welcher Situation Sie sich befinden, kann die Speicherauslastung mehrere Tage dauern, um zu einem stabilen Zustand zurückzukehren. Das Erhöhen der Verbindungsgrenzwerte muss möglicherweise in kleinen Schritten und im Laufe von mehreren Tagen erfolgen.

Verweis

Hoher CPU/hoher Arbeitsspeicher in WSUS nach Update dienstags