Performanceprobleme mit KVM und Windows

vorhergehende Artikel in: Docker Linux Virtualisierung
28.09.2019

Ich strebe wieder einmal nach mehr Wissen und versuche mich daher momentan im Bereich Virtualisierung weiterzubilden. Durch einen Kollegen angeregt nahm ich mir diesmal KVM vor...

Ich bin ja schon lange überzeugt von LXC und habe inzwischen auch Docker einiges abgewinnen können.

Nun wollte ich praktische Erfahrungen mit QEMU und KVM sammeln. Ich strebte dazu an, meine letzte noch existierende VirtualBox-VM nach QEMU zu migrieren. Es handelt sich dabei um ein 32-Bit Windows 10, auf der eine gekaufte Software installiert ist.

Nach meinen ersten Versuchen, dem Internet zu folgen stellte ich fest, dass nichts funktionierte - ich konnte die virtuelle Maschine nicht einmal booten: Ich hatte das virtuelle Festplattenimage in das Format qcow2 konvertiert und mittels virt-manager eine neue Virtuelle Maschine erstellt, mittels derer ich versuchte, dieses Image zu booten. Mein Kollege brachte mich dann darauf, dass dieses Image vielleicht per UEFI gebootet werden möchte - dazu musste ich noch einige Installationsaufwand an meinem KVM-Host betreiben, aber damit bootete die Maschine.

Allerdings wurde ich was die Alltagstauglichkeit anging enttäuscht - hatte Windows laut Taskmanager nichts zu tun, betrug die Auslastung des Docker-Host dennoch über 60%! Das wäre für mich ein Grund gewesen, die Maschine als VirtualBox weiter zu betreiben und zunächst Abstand von QEMU/KVM zu nehmen.

Aber ich hatte bei meinem Kollegen gesehen, dass es auch anders geht. Daher recherchierte ich ein wenig im Internet und fand auch recht rasch die Ansage, dass Windows 10 in der Version 1803 an den internen Timern Änderungen vorgenommen hat, die dafür sorgen, dass unter KVM Windows nicht mehr rund 140 Interrupts abarbeiten muss, sondern in derselben Zeit 2000! Das erklärt zunächst die hohe Last auf dem Hostsystem.

Ich fand auch diverse Ideen, wie man dieses Problem lösen könnte - eins gleich vornweg: Ich verschwendete einen halben Tag meiner Lebenszeit damit, die falschen Dateien zu editieren: Ich fand Beschreibungen meiner Windows VM in meinem Homeverzeichnis wie auch unter /etc/ - keine dieser Dateien ist diejenige welche. Daher dachte ich auch, das all die vielen Tips im Internet zu diesem Thema keine Lösung enthielten. Als ich dann realisierte, dass diese Dateien vom System nicht genutzt werden und die einzige zuverlässige Methode zum Anpassen der Konfiguration das Kommando

virsh -c qemu:///system edit mywin

ist, habe ich auch die für mich funktionierende Konfiguration gefunden: Dieses Problem betreffend musste ich die Abschnitte features und clock in der Konfiguration wie folgt abändern:

  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
    </hyperv>
    <vmport state='off'/>
  </features>
  <clock offset='localtime'>
    <timer name='hpet' present='yes'/>
    <timer name='hypervclock' present='yes'/>
  </clock>

Artikel, die hierher verlinken

Multi-User-WebDAV, Docker, GitHub

17.11.2019

Nachdem ich mich in letzter Zeit verstärkt mit Docker und dem zugehörigen Ökosystem beschäftige, habe ich begonnen, verschiedenste Dienste in Containern zu testen um zu sehen, ob in manchen Fällen LXC oder KVM nicht doch die bessere Wahl wäre...

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Certstream, InfluxDB, Grafana und Netflix

    16.04.2019

    Nachdem ich vor kurzem über mein erstes Spielen mit dem certstream berichtete, habe ich weitere Experimente gemacht und die Daten zur besseren Auswertung in eine InfluxDB gepackt, um sie mit Grafana untersuchen zu können.

    Weiterlesen...

Neueste Artikel

  • Die sQLshell ist nun cloudnative!

    Die sQLshell hat eine weitere Integration erfahren - obwohl ich eigentlich selber nicht viel dazu tun musste: Es existiert ein Projekt/Produkt namens steampipe, dessen Slogan ist select * from cloud; - Im Prinzip eine Wrapperschicht um diverse (laut Eigenwerbung mehr als 140) (cloud) data sources.

    Weiterlesen...
  • LinkCollections 2024 III

    Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2024 folgt hier gleich die nächste:

    Weiterlesen...
  • Funktionen mit mehreren Rückgabewerten in Java

    Da ich seit nunmehr einem Jahr bei meinem neeun Arbeitgeber beschäftigt und damit seit ungefähr derselben Zeit für Geld mit Python arbeite, haben sich gewisse Antipathien gegenüber Python vertieft (ich kann mit typlosen Sprachen einfach nicht umgehen) - aber auch einige meiner Gründe, Python zu lieben sind ebenso stärker geworden. Einer davon ist der Fakt, dass eine Methode in Python mehr als einen Wert zurückgeben kann.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.