WaitToKillServiceTimeout unter Windows konfigurieren
WaitToKillServiceTimeout bestimmt, wie lange der Windows-Dienststeuerungs-Manager beim Herunterfahren auf das ordnungsgemäße Beenden von Systemdiensten wartet. Nach Ablauf der Wartezeit setzt Windows den Herunterfahrvorgang fort, auch wenn einzelne Dienste ihre Bereinigungsarbeiten noch nicht vollständig abgeschlossen haben.
Eine Verkürzung kann das Herunterfahren beschleunigen. Zu niedrige Werte können jedoch dazu führen, dass Dienste nicht genügend Zeit zum Speichern, Synchronisieren oder Schließen ihrer Daten erhalten.
Kurzbewertung
- Datentyp: Zeichenfolge, nicht DWORD
- Einheit: Millisekunden
- 20000: ungefähr 20 Sekunden
- 10000: moderat verkürzte Wartezeit
- 5000: aggressive Verkürzung
- 2000: für normale Systeme nicht zu empfehlen
- Leistungssteigerung: keine
- Wirkung: ausschließlich auf das Herunterfahren von Diensten
Korrektur älterer Registry-Tipps
In älteren Tuning-Sammlungen wird häufig folgende Einstellung genannt:
DWORD-Wert (32-Bit) WaitToKillServiceTimeout = 7D0 hexadezimal
Diese Angabe ist technisch falsch.
WaitToKillServiceTimeout muss als Zeichenfolge angelegt werden:
Typ: REG_SZ
Der Inhalt wird als normale Dezimalzahl in Millisekunden eingetragen:
2000
Eine hexadezimale Eingabebasis existiert bei einer Zeichenfolge nicht.
Registrierungspfad
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
Die Einstellung gilt systemweit und betrifft alle Windows-Dienste. Administratorrechte sind erforderlich.
Registry-Wert
Name:
WaitToKillServiceTimeout
Typ:
Zeichenfolge (REG_SZ)
Einheit:
Millisekunden
Ein Wert von
20000
entspricht beispielsweise:
20 Sekunden
Funktionsweise
Beim Herunterfahren sendet der Windows-Dienststeuerungs-Manager den laufenden Diensten eine Aufforderung zum Beenden. Die Dienste können diese Zeit unter anderem verwenden, um:
- noch nicht gespeicherte Daten zu schreiben
- Datenbanken ordnungsgemäß zu schließen
- Cache-Inhalte auf den Datenträger zu übertragen
- Netzwerkverbindungen zu beenden
- Replikationsvorgänge abzuschließen
- Hardwarezustände zu sichern
- Protokolle zu schreiben
Wird der durch WaitToKillServiceTimeout festgelegte Zeitraum überschritten, wartet Windows nicht unbegrenzt weiter und setzt den Herunterfahrvorgang fort.
Abgrenzung zu Anwendungen
WaitToKillServiceTimeout betrifft ausschließlich Windows-Dienste.
Die Einstellung steuert nicht unmittelbar das Beenden normaler Desktopprogramme.
Für Benutzeranwendungen existieren andere Einstellungen, beispielsweise:
WaitToKillAppTimeout HungAppTimeout AutoEndTasks
Diese Werte sollten getrennt dokumentiert und nicht mit WaitToKillServiceTimeout vermischt werden.
Bedeutung möglicher Werte
20000 Millisekunden
WaitToKillServiceTimeout = 20000
Dies entspricht ungefähr 20 Sekunden.
Microsoft beschreibt für normale Dienst-Bereinigungsarbeiten eine standardmäßige Größenordnung von etwa 20 Sekunden. Der tatsächlich vorhandene Wert des jeweiligen Systems sollte jedoch immer geprüft werden. Diese Einstellung bietet Diensten ausreichend Zeit für ein kontrolliertes Beenden und ist für normale Arbeitsplatzsysteme eine sichere Ausgangsbasis.
10000 Millisekunden
WaitToKillServiceTimeout = 10000
Dies entspricht zehn Sekunden.
Der Wert verkürzt die maximale Wartezeit deutlich, lässt Diensten jedoch weiterhin einen gewissen Zeitraum zum geordneten Abschluss. Für schnelle Arbeitsplatzsysteme ohne komplexe Server-, Datenbank- oder Replikationsdienste kann dies ein vorsichtiger Testwert sein.
5000 Millisekunden
WaitToKillServiceTimeout = 5000
Dies entspricht fünf Sekunden.
Der Wert ist bereits aggressiv. Dienste mit umfangreichen Schreib-, Synchronisations- oder Bereinigungsarbeiten können möglicherweise nicht mehr kontrolliert beendet werden. Eine Verwendung sollte nur nach Prüfung der Ereignisanzeige und wiederholten Tests erfolgen.
2000 Millisekunden
WaitToKillServiceTimeout = 2000
Dies entspricht zwei Sekunden.
Der Wert wurde häufig als Tuning-Einstellung zum schnelleren Herunterfahren verbreitet. Für moderne Arbeitsplatz- und Produktionssysteme ist er jedoch nicht pauschal zu empfehlen. Zwei Sekunden können unter anderem zu kurz sein für:
- Datenbankdienste
- Backup-Software
- Synchronisationsdienste
- Netzwerk- und VPN-Dienste
- Audio- und Hardwaredienste
- virtuelle Maschinen
- Dateiindizierung
- Cloud-Synchronisation
- Sicherheitssoftware
- Server- und Replikationsdienste
Die Verkürzung kann das Herunterfahren zwar beschleunigen, erhöht jedoch das Risiko eines unsauberen Dienstabbruchs.
Sehr hohe Werte
Ein höherer Wert kann erforderlich sein, wenn ein bestimmter Dienst nachweislich mehr Zeit für einen sauberen Abschluss benötigt. Microsoft dokumentiert beispielsweise verlängerte Wartezeiten für bestimmte DFS-Replikationsdienste. Da WaitToKillServiceTimeout für alle Dienste gilt, sollte der Wert nur so hoch wie tatsächlich erforderlich gewählt werden.
Extrem hohe Werte können das Herunterfahren erheblich verzögern, wenn ein Dienst nicht mehr reagiert.
Empfohlene Vorgehensweise
Für normale Arbeitsplatzsysteme sollte zunächst der vorhandene Wert beibehalten werden. Falls das Herunterfahren reproduzierbar durch langsam beendete Dienste verzögert wird:
- Ereignisanzeige auf Dienstfehler und Zeitüberschreitungen prüfen.
- Den verursachenden Dienst identifizieren.
- Software und Treiber des Dienstes aktualisieren.
- Prüfen, ob der Dienst tatsächlich benötigt wird.
- Erst danach die Wartezeit vorsichtig reduzieren.
- Zunächst mit 10000 Millisekunden testen.
- Nur bei fehlerfreiem Verhalten weiter reduzieren.
- Werte unter 5000 Millisekunden vermeiden.
Die Ursache eines langsamen Herunterfahrens sollte möglichst behoben werden, statt den Dienst lediglich früher abzubrechen.
WaitToKillServiceTimeout auf zehn Sekunden setzen
Registrierungseditor
- Den Registrierungseditor als Administrator öffnen.
- Zum folgenden Schlüssel wechseln:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
- Den Wert WaitToKillServiceTimeout öffnen.
- Falls er fehlt, eine neue Zeichenfolge anlegen.
- Folgenden Wert eintragen:
10000
- Windows neu starten.
Registrierungsdatei
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control] "WaitToKillServiceTimeout"="10000"
Windows-Terminal
Das Windows-Terminal muss als Administrator geöffnet werden:
reg add "HKLM\SYSTEM\CurrentControlSet\Control" /v WaitToKillServiceTimeout /t REG_SZ /d 10000 /f
Anschließend muss Windows neu gestartet werden.
WaitToKillServiceTimeout auf fünf Sekunden setzen
reg add "HKLM\SYSTEM\CurrentControlSet\Control" /v WaitToKillServiceTimeout /t REG_SZ /d 5000 /f
Dieser Wert sollte nur verwendet werden, wenn zehn Sekunden ohne Probleme getestet wurden.
Mögliche Vorteile
Eine moderate Verkürzung kann folgende Auswirkungen haben:
- schnelleres Herunterfahren bei langsam reagierenden Diensten
- kürzere Wartezeit bei Diensten, die ohnehin nicht ordnungsgemäß reagieren
- schnellerer Neustart nach Wartungsarbeiten
- geringere Verzögerung bei automatisierten Arbeitsplatzsystemen
Die Änderung beschleunigt weder den Windows-Start noch die normale Systemleistung.
Mögliche Nachteile
Zu niedrige Werte können folgende Probleme verursachen:
- unvollständig geschlossene Datenbanken
- beschädigte Arbeitsdateien
- nicht abgeschlossene Synchronisation
- verlorene Cache-Inhalte
- fehlerhafte Dienstzustände beim nächsten Start
- Wiederherstellungs- oder Reparaturvorgänge
- Ereignisprotokollfehler
- unsauber beendete Netzwerkdienste
- beschädigte Replikationsdaten
- unerwartete Probleme mit Backup- oder Sicherheitssoftware
Ein schneller schwarzer Bildschirm bedeutet nicht automatisch, dass alle Dienste ihre Arbeit korrekt abgeschlossen haben.
Wann kann eine Verkürzung sinnvoll sein?
Eine moderate Verkürzung kann sinnvoll sein, wenn:
- das System nur wenige zusätzliche Dienste verwendet
- keine Datenbank- oder Serverdienste laufen
- keine virtuellen Maschinen aktiv sind
- keine umfangreichen Synchronisationsdienste verwendet werden
- das Herunterfahren objektiv durch einen Dienst verzögert wird
- die Ereignisanzeige keine Fehler nach dem Neustart meldet
- alle wichtigen Anwendungen vor dem Herunterfahren bereits beendet werden
Wann sollte der Wert nicht verkürzt werden?
Eine Verkürzung ist nicht zu empfehlen bei:
- Serverbetrieb
- Domaincontrollern
- Datenbankservern
- Datei- und Backupservern
- virtuellen Maschinen
- laufender Cloud-Synchronisation
- professionellen Produktionssystemen mit Hardwarediensten
- aktiven Netzwerk- oder VPN-Verbindungen
- Replikationsdiensten
- ungeklärten Dienstfehlern
- Strom- oder Datenträgerproblemen
Auch bei häufigen Meldungen über nicht beendete Dienste sollte zunächst die Ursache ermittelt werden.
Ereignisanzeige prüfen
Probleme beim Herunterfahren können in der Ereignisanzeige nachvollzogen werden:
eventvwr.msc
Relevante Bereiche sind insbesondere:
Windows-Protokolle → System Windows-Protokolle → Anwendung Anwendungs- und Dienstprotokolle
Gesucht werden sollte nach Warnungen und Fehlern, die unmittelbar vor dem Herunterfahren oder nach dem nächsten Systemstart protokolliert wurden.
Vorhandenen Wert sichern
Vor der Änderung sollte der vollständige Schlüssel exportiert werden:
reg export "HKLM\SYSTEM\CurrentControlSet\Control" "%USERPROFILE%\Desktop\Windows-Control.reg" /y
Alternativ kann nur der vorhandene Wert mit folgendem Befehl angezeigt werden:
reg query "HKLM\SYSTEM\CurrentControlSet\Control" /v WaitToKillServiceTimeout
Der ausgegebene Wert sollte vor jeder Änderung notiert werden.
Rückgängig machen
Der zuvor vorhandene Wert wird wieder eingetragen.
Beispiel für 20 Sekunden:
reg add "HKLM\SYSTEM\CurrentControlSet\Control" /v WaitToKillServiceTimeout /t REG_SZ /d 20000 /f
War der Wert ursprünglich nicht vorhanden, kann der selbst angelegte Eintrag gelöscht werden:
reg delete "HKLM\SYSTEM\CurrentControlSet\Control" /v WaitToKillServiceTimeout /f
Anschließend muss Windows neu gestartet werden.
Fazit
WaitToKillServiceTimeout legt die maximale Wartezeit beim Beenden von Windows-Diensten fest. Der Wert muss als Zeichenfolge und in Millisekunden eingetragen werden. Die häufig verbreitete Angabe als DWORD-Wert ist falsch. Eine moderate Einstellung von 10000 Millisekunden kann auf einfachen Arbeitsplatzsystemen getestet werden. Der alte Tuning-Wert von 2000 Millisekunden ist sehr aggressiv und kann Dienste beenden, bevor sie ihre Daten ordnungsgemäß gespeichert haben.
Für Produktions-, Server-, Datenbank-, Backup- oder Synchronisationssysteme sollte die vorhandene Wartezeit grundsätzlich beibehalten oder bei Bedarf sogar verlängert werden.