Quick Tipp #8 (WSUS): Probleme mit Windows 10 / Server 2016 beheben

By Marc

Seit kurzem erreichen mich vermehrt Berichte über Probleme zwischen WSUS und Windows 10 / Server 2016. Dabei erhalten die Clients keine Updates mehr und melden den Update Fehler 8024401c – Timeout. Schaut man sich das Ganze auf dem WSUS Server an, findet in der Regel zwei Indizien:

  1. Während der Update-Suche steigt die CPU Auslastung auf dem WSUS Server enorm an, nach ca. 2 Minuten bricht der Client die Suche ab, danach endet auch die Belastung auf dem Server. In den IIS Logs und im Ereignisprotokoll sind allerdings keine Fehler zu finden.
  2. Nach ein paar Tagen Laufzeit des WSUS lässt sich die Konsole nicht mehr starten (Meldung mit der Option “Serverknoten zurücksetzen”). Ein Neustart des WSUS-Dienstes ist nutzlos, nur ein “iisreset” behebt das Problem vorübergehend.

Seltsamerweise sind dann auch nicht alle Clients davon betroffen – aber das hat anscheinend auch einen Grund: Laut Microsoft (siehe Technet) ist die Ursache dafür, dass mit der Einführung der kumulativen Updates die Metadaten, die der Client mit dem WSUS Server austauschen muss, deutlich angewachsen und je älter der Client ist, desto größer sind diese Daten. Nun scheint die Verarbeitung dieser Daten durch den WSUS sehr aufwändig zu sein, so dass das voreingestellte Zeitlimit von 110 Sekunden für die Verarbeitung nicht ausreichen und die Verbindung vor der vollständigen Verarbeitung abgebrochen wird … also gibt es dann keine Updates.

Der Workaround

So eine richtige Lösung dafür gibt es nicht wirklich, aber einen gut funktionierenden Workaround. Ihr könnte das Ganze natürlich mit höher getakteten CPUs und noch mehr RAM zu erschlagen versuchen, Microsoft empfiehlt aber eine kostengünstigere Variante:

Erhöht das ASP.NET Timeout für den WSUS-App-Pool. Dazu müsst ihr in der Datei “\Program Files\Update Services\WebServices\ClientWebService\Web.Config” folgende Zeile finden:

<httpRuntime maxRequestLength="4096" />
Diese muss dann um den Parameter “ExecutionTimeout” erweitert werden:
<httpRuntime maxRequestLength="4096" executionTimeout="3600" />

Jetzt noch ein “iisreset”, damit wird die Einstellung wirksam. Nun hat der Server 60 Minuten Zeit, mit dem Client über Updates zu verhandeln, statt wie zuvor knappe 2 Minuten. Das sollte reichen.

Weiter optimieren lässt sich das Thema anhand dieses weiteren Technet Eintrags, wo folgende Einstellungen des WSUS-App-Pools (Advanced Settings im IIS Manager) empfohlen werden:

  1. Queue Length von 1.000 auf 25.000 stellen
  2. Maximum Worker Processes von 1 auf 0 stellen
  3. Service Unavailable von HttpLevel auf TcpLevel umstellen
  4. Failure Interval (minutes) von 5 auf 30 umstellen
  5. Maximum Failures von 5 auf 60 umstellen
  6. iisreset 🙂

Außerdem ist es immer eine gute Idee, den Empfehlungen von “The complete guide to Microsoft WSUS and Configuration Manager SUP maintenance” zu folgen.

Bei mir haben die o.g. Einstellungen bisher immer funktioniert, schreibt mir gerne einen Kommentar, wie es bei euch aussieht.

Loading