Svchost.exe benutzt 100% CPU auf Clients die sich über WSUS Updates ziehen
Auch wenn dieses Problem mit der Zeit geringer auftreten wird, da PC’s bessere Hardware bekommen, gibt es immer noch Situationen wo Clients auf Performance Probleme stoßen wenn Updates von WSUS gezogen werden.
Defaultmäßig scanned ein Client jede 22 Stunden nach Updates. Diese Zeit kann natürlich geändert werden.
Als nächstes werde ich alle Faktoren anfassen die zu der Scann Performance des Clients halten:
- Hardware. Single Core Maschinen haben es wesentlicher langsamer bei dem Scannen als Dual Core Maschinen.
Vorschlag: Nutzen von Dual Core Maschinen
- MSI Version. MSI ist während dem Scanning benutzt. Office Updates haben eine Detection Logik die im Packet enthalten ist. Somit reicht der Windowsupdate Agent die Metadaten dem MSI Engine der nach Produkten und Features scanned um festzustellen ob das Packet zum Installieren freigegeben werden darf. Wenn noch MSI 3.x benutzt wird, dann wird es fast immer Performance Probleme bei dem Scannen geben.
Vorschlag: Benutzt immer die letzte MSI Version. Ihr könnt die MSI.DLL Version folgender maßen überprüfen:
[C:\WINNT\SYSTEM32\MSI.DLL]
Company Name: Microsoft Corporation
File Description: Windows Installer
Product Version: 3.1.4001.5512
File Version: 3.1.4001.5512
URL zu Download von MSI 4.5 https://support.mirosoft.com/kb/942288
- Die Metadaten sowohl alle anderen Informationen die zwischen Client und Server ausgetauscht werden, sind in den c:\windows\softwaredistribution Ordner geschrieben. Um bessere Performance bei dem Scanning zu erreichen würde es helfen den Softwaredistribution Ordner in die Exclusion List des AntiVirus einzufügen.
- Windows Update Agent. Dieser ist mit der Detection Logik für alle installierbaren Updates zuständig. Dieses Update ist sehr wichtig da unsere Produktgruppe den WU Agent regelmäßig verbessert.
Vorschlag: Installieren Sie immer die letzte Version des Windows Update Agents: https://support.microsoft.com/kb/949104
- Die Anzahl der verfügbaren Updates auf dem WSUS Server:
Dieses Konzept ist sehr wichtig verstanden zu sein. Auf dem WSUS Server gibt es Updates die 3 verschiedene Stati haben können: Abgelehnt Genehmigt, nicht genehmigt.
Die Detection auf dem Client funktioniert folgender maßen: Der Client (wuaueng.dll) initiiert ein Metadata Sync mit dem Server. Einfach gesagt, verlangt dieser eine Liste von Update die auf dem WSUS Server verfügbar sind (Der Client Web Service ist dafür benutzt).
Der Server stellt eine Liste von Update zusammen und schickt diese zurück an den Client. Danach passiert die eigentliche Detection. MSXML3.DLL und MSI.DLL parsen die XML Daten nach Updates die der Client benötigt. Sobald der Prozess zu Ende ist, wird eine Liste gebaut die an den WSUS Server geschickt wird und als nächstes den Download startet.
Vorschlag:
1. Lehnt alle Superseeded Updates ab. Superseeded Updates sind Pakete die durch neuere ersetzt werden. Dieses ist der wichtigste Tweak. Große Aufmerksamkeit auf Office 2003 Updates. Es gibt sehr viele davon, und diese sind meistens der Primäre Grund für Performance Probleme.
2. Versucht dem Status „Nicht Genehmigt“ auszuweichen. Updates sollten entweder Genehmigt oder Abgelehnt sein.
- WSUS Server Pflege:
Eine gute Server Pflege wird Performance auf den Clients ebenfalls erhöhen. Monatliche Cleanup Skripts werden abgelaufene Updates löschen und Superseedete Updates ablehnen.
Folgende Tools/Skripts werden bei dem Prozess behilflich sein:
1. Der WSUS Cleanup Skript sollte einmal pro Monat ausgefuehrt werden. Dieses kann mittels Skripts kontrolliert werden:
WSUS:
https://wsus.codeplex.com/releases/view/17612
Powershell Skript:
https://www.peetersonline.nl/index.php/powershell/wsus-cleanup-with-powershell/
2. Unten findet ihr ein Re-Indexing Skript dass nach Ablauf das suchen in der Datenbank erleichtert und somit die Performance erhöht.
https://www.microsoft.com/technet/scriptcenter/scripts/sus/server/susvvb01.mspx?mfr=true
Diese Schritte sollten bemerkbare Verbesserungen der Performance auf Clients bringen. Für Fragen, stehe ich euch wie immer zur Verfügung.
Tudor Dimboianu
Platforms Core Team