Sehr langer Shutdown oder Reboot des Microsoft Hyper-V Server 2016

In den Windows Server 2016 haben sich je eine Reihe von Eigenheiten eingeschlichen, die mir immer wieder Probleme bereiten. Kürzlich hatte ich mit dem Microsoft Hyper-V Server 2016, wieder das Problem, dass einige Hosts für den Shutdown sehr lange benötigt haben. Mit sehr lange meine ich, bis zu einigen Stunden!

Daher habe ich mir das Problem genauer angeschaut und dabei die Lokation des Pagefiles als Auslöser ausmachen können. Damit kann die in diesem Blog beschriebene Lösung auch hier zum Einsatz kommen. Da der Microsoft Hyper-V Server keine Benutzeroberfläche hat, muss das Pagefile über WMIC neu konfiguriert werden.

Anzeige des aktuell konfigurierten Pagefiles.

wmic pagefile list full

Umstellung auf ein nicht durch das Betriebssystem konfiguriertes Pagefile.

wmic computersystem where name=”%computername%” set AutomaticManagedPagefile=False

Konfiguration des Pagefiles auf Laufwerk C: mit einer Startgröße von 16GB und einer maximalen Größe von 32GB. Soll das Pagefile mit einer festen Größe angelegt werden, dann ist es notwendig InitialSize und MaximalSize auf den gleichen Wert zu setzen.

wmic pagefileset where name=”C:\\pagefile.sys” set InitialSize=16384,MaximumSize=32768

Die Änderungen werden erst nach einem Neustart des Servers durch WMIC angezeigt, hier sollte man sich also nicht beirren lassen. Insofern WMIC keine Fehlermeldungen zurück gibt, ist die Konfiguration korrekt erfolgt.

Abschließend habe ich mir die Frage gestellt, wieso das Problem eigentlich auftritt. Ich kann dieses Verhalten nämlich nicht bei allen Hyper-V Hosts mit der Version 2016 feststellen. Microsoft selbst liefert in einer Reihe von Artikeln und Blogs Empfehlungen zur Dimensionierung von Pagefiles. Für Hyper-V Systeme, kann man das kurz abfassen.

  1. Geht dem Host der Speicher aus, und ist eine VM mit dynamisch allokiertem Speicher unterwegs dann erfolgt ein Paging in der VM und nicht auf dem Host
  2. Es genügt, dass der Host einen Kernel- oder von mir aus noch Active-Dump schreiben kann. Kernel-Dumps habe ich bisher, auch bei sehr großen Systemen (1TB … und mehr) keinen größer als 20GB gesehen und damit war er für eingehende Analysen immer ausreichend

Darum habe ich auf kleinen Hyper-V Hosts (32GB RAM und 64 bzw. 72GB Systemlaufwerk) keine Probleme gehabt und auch auf zwei meiner größeren Systeme mit 128GB RAM und einem 256GB großem Systemlaufwerk, ist das Problem nicht aufgetreten.

image

Lediglich auf mehreren Hosts mit 256GB RAM und einem 72GB großen Systemlaufwerk, bin ich auf dieses Problem getroffen und habe es wie oben beschrieben gelöst. Dabei ist verständlich, dass das Betriebssystem bei 256GB Hauptspeicher das Pagefile auf ein Laufwerk mit hinreichend viel Platz legt und es dadurch zu dem Verhalten kommen kann.

Enjoy it, b!

Visual Studio Code “Convert to Lower and Upper Case”

Wenn ich “code”, nehme ich dazu fast nur noch Visual Studio Code und in seltenen Fällen auch Notepad++. In Visual Studio Code ist mir aufgefallen, dass eine Konvertierung von Textblöcken in Groß- oder Kleinschreibung nicht ohne weiteres funktioniert. Eine in Visual Studio Code immer sehr gute Idee, wenn man eine Funktion sucht, ist der Aufruf der Behelfs Palette (command palette) mit CTRL+SHIFT+P und dort die Eingabe des Suchbegriffs wie z.B. transform.

image

Trotzdem wollte ich zusätzlich einen Shortcut damit belegen, Möglich ist das in den Einstellungen für die Shortcuts (oder Tastenabkürzungen) unter Manage/ Keyboard Shortcuts. Manage ist unten links als “Zahnrad”, analog zu Windows 10 im Editor zu finden. In dem nun sich öffnenden Dialog kann man nach entsprechen Funktionen und damit verknüpften Shortcuts suchen. In der folgenden Abbildung habe ich das Wort transform eingegeben.

image

Unter Keybinding sind hier keine Shortcuts zu sehen, können aber entsprechend definiert werden. Will man nun einen Shortcut definieren, genügt ein Klick auf das vor dem jeweiligen Command (Befehl) erscheinende Plus und ein Dialog zur Belegung öffnet sich. Die Idee, eine Kovertierung auf kleine Buchstaben mit STRG+SHIFT+L und große Buchstaben STRG+SHIFT+U zu ermöglichen, was der Belegung in Visual Studio entspricht, stellte sich als schlechte Idee heraus da diese Kombination schon belegt ist.

image

Auch die in Notepad++ vorgegebene Kombination aus STRG + L war ebenfalls nicht möglich und so habe ich mich für die folgenden Kombinationen entschieden.

  • Lowercase = STRG+ALT+L
  • Uppercase = STRG+ALT+U
  • Title Case = STRG+ALT+T

image

Für Coder die generell die gleiche Belegung wie Visual Studio verwenden wollen, sei hier noch auf die Extension Visual Studio Keymap aus dem Marketplace hingewiesen oder auch die Möglichkeit Notepad++ Mappings zu verwenden.

image

Ich will es aber erstmal bei meinen Shortcuts belassen.

Happy Coding, b!