In diesem Artikel möchte ich mich mit der Windows Performance unter Bhyve beschäftigen. Wie ich bereits hier  FreeBSD bhyve mit Windows 10 beschrieben habe, nutze ich die Maschine für die Arbeit um verschiedene Windows Applikationen zu betreiben.

Ich beziehe mich hier auf den FreeBSD 12.1 Release Zweig. Für andere Branches dürften diese Informationen nicht zutreffen bzw. die Patches kommen aus dem Current Branch, der die Grundlage für das nächste Release bildet.

Zuerst benötigen wir einen Patch, den wir unter /usr/src ablegen. Nachdem wir den Patch angewendet haben, bauen wir den Kernel neu.

bhyve-rS349184-rS358848-combined

cd /usr/src
patch -C < bhyve-rS349184-rS358848-combined.diff
make buildkernel KERNCONF=GENERIC
make installkernel KERNCONF=GENERIC
reboot

Natürlich solltet ihr die aktuelle Version von vm-bhyve installiert haben. Entweder aus den Ports heraus oder mittels pkg.

Um die Performance von Windows unter Bhyve weiter zu steigern, sollte für Speichercontroller und Netzwerk die KVM Virtio Treiber verwendet werden. Wenn man sich durch die verschiedenen Foren liest, scheinen aber nicht alle Versionen geeignet zu sein. Als verlässlich gelten die Versionen 118-1 und 126-1. Di Treiber können unter folgendem Link bezogen werden:

Fedora Virtio Treiber Download

Ohne wirklich Benchmarks erstellt zu haben, sondern einfach auf eigene Beobachtungen, Usability und durchprobieren von Treibern basierend, habe ich festgestellt, dass die vor kurzem veröffentlichten Treiber in der Version 185-1 für meine Windows 10 Maschine am Besten funtkionieren.

Am Besten lässt sich das Verhalten der Treiber im Taskmanager beobachten. Wenn die Treiber / OS Kombination nicht optimal ist, ist die Prozessorauslastung durchgehend auf 100%, verursacht von dem Prozess „Systemunterbrechungen“.

Zusätzlich kann mit einem kleinen Tool weiter Abhilfe geschaffen werden. TimerTool ist eine kleine exe, die den Windows System Timer modifiziert. Dafür habe ich eine kleine Batch erstellt die ich beim Systemstart, mittels Aufgabenplanung, ausführen lasse. Das Tool findet ihr hier:

Windows System Timer Tool Download

Meine Batch sieht natürlich gleich aus, wie das Beispiel auf der TimerTool Homepage. Der Vollständigkeit halber, poste ich sie trotzdem.

start "" "C:\timer\TimerTool.exe" -t 0.5 -minimized
exit

Wer die Tutorials zur Installation von Windows unter Bhyve sich anschaut, im speziellen Windows 10, wird feststellen, dass erst nach erfolgreicher Installation, die Treiber gewechselt werden auf Virtio. Dies ist beim Storagecontroller nicht trivial und erfordert es, dass die Treiber im Safe Mode geladen werden um als neues Boot Device verwendet werden zu können. Die einzelnen Schritte:

Open an elevated command prompt and set the VM to boot into safe mode by typing
bcdedit /set {current} safeboot minimal
shut-down the VM and change the boot device type to virtio.
boot the VM. It will enter in safe mode.
Note: In Safe mode all boot-start drivers will be enabled and loaded, including the virtio driver. Since there is now a miniport installed to use it, the kernel will now make it part of the drivers that are to be loaded on boot and not disable it again.
in the booted VM reset the bcdedit settings to allow the machine to boot into the Normal mode by typing (in elevated command prompt again):
bcdedit /deletevalue {current} safeboot

Ich bin diesen Weg oft gegangen und kann sagen, dass dieser zuverlässig funktioniert. Gefunden habe ich das Ganze auf superuser.com

Ein weiterer interessanter Thread zu diesem Thema findet sich im FreeBSD Forum

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.