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
- WSUSDBMaintenance Scripts herunterladen (nicht auf die Version achten – läuft auch unter WSUS 4)
- Microsoft® Command Line Utilities 11 for SQL Server herunterladen und installieren (oder alternativ das SMSS verwenden)
- 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 @localUpdateID=@var1 FETCH NEXT FROM WC INTO @var1 END CLOSE WC DEALLOCATE WC DROP TABLE #results
Tipp 5 – SQL-Server Timeout für die 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
Tipp 6 – IIS Prozess-Pool Timeout für die WSUS-Prozesse erhöhen
Ein sehr nerviger Fehler taucht im WSUS ab Windowss Server 2016 auf: „WSUS Verbindungsfehler – Serverknoten zurücksetzen„
IIS (Internetinformationsdienste) Konsole öffnen > Anwendungspools > WsusPool > „Erweiterten Einstellungen“ des Anwendungspools öffnen -> „Limit für den privaten Speicher“ auf „0“ setzen und Server neustarten. Der Reboot ist notwendig, ein Nuestart der IIS alleine reicht nicht.
Irgendwann hatten wir mal die Nase voll und sind auf Desktop Central umgestiegen. Deutlich besser als WSUS. Bis 20 (oder 25?) Clients ist es sogar kostenlos.
Pingback: WSUS: Die Serverbereinigung bricht ab – Andy's Blog
Tip 4 hat zwar nach 3 Tagen und 19 Stunden 27000 Einträge gelöscht, aber leider keinen Plattenplatz wieder frei gegeben.Die Serverbereinigung per MMC hat danach nur 0 Einträge gefunden, aber der Plattenplatz war trotzdem noch belegt.
Hallo,
es müssen noch die Updates bereinigen https://www.taste-of-it.de/wsus-server-aufraeumen-und-bereinigen/ . Ich habe von 900GB auf 300GB WSUS Update geschrumpft.
Am ende nicht vergessen der DB zu verkleiner. Unserer MSSQL Express DB wurde vonmax 10GB auf 5 GB verkleinen.
Ein ausgezeichneter Tipp und hervorragend dokumentiert – haben wir getestet, hält was es verspricht. Danke dir! 🙂
Es gab da so ein PS-Script namens Adamj Clean-WSUS… habe ich seit Jahren im Einsatz.
Als ich gerade danach gesucht habe bin ich auf das nun kostenpflichtige Nachfolgeprodukt gestoßen: https://www.ajtek.ca/wam/previous-users-of-adamj-clean-wsus-now-defunct-software/
Schade 🙁 Seitdem ich das Script im Einsatz habe, läuft der WSUS nämlich 1A