WSUS 4 Performance optimieren durch Datenbank-Reindexierung, Löschen und manuelles bearbeiten

Der WSUS unter Windows Server 2012/2012R2 und 2016 zeigt ab und zu gewisse Performance-Schwächen. Das äußert sich beispielsweise in dem berüchtigten „Serverknoten zurücksetzen“ Fehler oder dem „Fehler bei der Verbindung zur WSUS-Datenbank“ Anzeige.

Lösung

Der WSUS-Server ist tatsächlich ein Performance-Fresser. die Update-Datenbank ist riesig. Nicht immer ist hier die WID (Windows-Interne Datenbank) die richtie Lösung. Wartungsscripts und Neuindexierungsjob gibt es hier leider nicht.

Tipp 1 – WSUS-Datenbank defragmentieren und neuindexieren

  1. WSUSDBMaintenance Scripts herunterladen (nicht auf die Version achten – läuft auch unter WSUS 4)
  2. Microsoft® Command Line Utilities 11 for SQL Server herunterladen und installieren (oder alternativ das SMSS verwenden)
  3. Die Scripts ausführen:
    sqlcmd -E -S np:\\.\pipe\MICROSOFT##WID\tsql\query -i WsusDBMaintenance.sql

Tipp 2 – Cleanup-Agent laufen lassen

Der WSUS „Assistent für die Serverbereinigung“ kann die Datenbank deutlich entschlacken (und für mehr Platz sorgen). Läuft der Assistent nicht durch, hilft oft dieser Artikel.

Tipp 3 – Mehr Leistung

Ein WSUS mit vier Kernen und 8Gb RAM kann etwa 5000 Clients gut und schnell bedienen. viele WSUS-Maschinen haben aber deutlich weniger Ressourcen; eine leichte Aufstockung kann hier wunder bewirken.

Tipp 4 – Abgelaufene oder ersetzte Updates löschen

Der Fehler in diesem Artikel kann auch die Ursache für Verbindungstimeouts des Konsolenclients sein.

Dieses SQL-Script löscht die Updates direkt in der Datenbank, ohne einen externen Binärassistenten. Alle diese Updates auf einmal, ohne manuelles suchen.

DECLARE @var1 INT 
DECLARE @msg nvarchar(100) 
CREATE TABLE #results (Col1 INT) INSERT INTO #results(Col1) 
EXEC spGetObsoleteUpdatesToCleanup 
DECLARE WC Cursor FOR SELECT Col1 FROM #results 
OPEN WC 
FETCH NEXT FROM WC INTO @var1 WHILE (@@FETCH_STATUS > -1) 
BEGIN SET @msg = 'Deleting ' + CONVERT(varchar(10), @var1) RAISERROR(@msg,0,1) WITH NOWAIT 
EXEC spDeleteUpdate @[email protected] 
FETCH NEXT FROM WC INTO @var1 
END 
CLOSE WC 
DEALLOCATE WC 
DROP TABLE #results

Tipp 5 – SQL-Server Timeout für di WID/SUSDB hochsetzen/abschalten

Die meisten Konsolenaktionen laufen fehlerfrei durch, wenn man das SQL-Timout für querys entweder sehr hoch ansetzt, oder gleich ganz abschaltet. Achtung: Wenn man das Timeout abschaltet, laufen auch „tote“ Anfragen durch, bis sie fertig sind. Default sind 600 Sekunden.

USE SUSDB;  
GO  
EXEC sp_configure 'remote query timeout', 0 ;  
GO  
RECONFIGURE ;  
GO

 

One Reply to “WSUS 4 Performance optimieren durch Datenbank-Reindexierung, Löschen und manuelles bearbeiten”

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*