Verbessern der Windows-Leistung beim Ausführen in KVM


14

Ich benutze Ubuntu 12.04 64-Bit und KVM, meine CPU ist Core i5 3.3 GHz und ich habe 8 GB DDR3 RAM. Ich verwende Windows 7 in KVM und es ist extrem langsam. Mein Kollege verwendet Debian auf derselben PC-Konfiguration und kann Windows 7 extrem schnell ausführen! Wo kann mein Problem liegen?

[guyfawkes@guyfawkes-pc ~/work]$ sudo cat /etc/libvirt/qemu/windows.xml
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE 
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit windows
or other application using the libvirt API.
-->

<domain type='kvm'>
  <name>windows</name>
  <uuid>5c685175-baea-0ca6-591f-8269d923ffb8</uuid>
  <memory>2097152</memory>
  <currentMemory>2097152</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='pc-1.0'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='localtime'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/windows.img'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:94:63:91'/>
      <source network='default'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <input type='tablet' bus='usb'/>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes'/>
    <sound model='ich6'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </sound>
    <video>
      <model type='vga' vram='262144' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
</domain>

UPD : Ich habe Intel-VT vor der Installation von KVM aktiviert. Ich habe die VirtIO-Treiber erfolgreich installiert, und es hat mir einige Leistung gebracht, aber wenn ich beispielsweise Firefox unter Windows öffne, bewegt sich sogar die Maus sehr langsam, und die Benutzeroberfläche ist auch sehr langsam.

KVM Virtual Machines Manager


Unterstützt Ihre CPU die VT-Technologie?
Daisy

Ja, das tut es :)
Guy Fawkes

1
Thx - the - Storage Format: raw - Cache Modus: none (nicht Standard!) - I / O Modus: native - + Disk Bus: SATA hat es geschafft. "Windows-Dateien erweitern" während der Win7-Installation wurde sofort nach der Änderung hochgezählt, anstatt stundenlang bei @ 0% zu hängen. Ich frage mich, warum das Deaktivieren des Cachings den Trick macht, da ich den ersten Versuch mit SATA NATIVE und Caching (Writeback) unternommen habe, der vollständig fehlgeschlagen ist, und SATA NATIVE mit Caching auf NONE es offensichtlich gelöst hat ... Normalerweise würde ich einen Leistungsgewinn von erwarten Writeback-Caching?

Wie heißt diese Anwendung?
Thiagowfx

@ThiagoPerrotta Das ist Virt-Manager (Virtual Machine Manager)
Doug65536

Antworten:


11

Zunächst einmal ist die VM so konfiguriert, dass sie einen IDE-Bus emuliert, was ziemlich langsam ist. Versuchen Sie es mit einem SATA-Bus.

Besser noch, installieren Sie die virtio-Treiber in Windows 7 und ändern Sie sie in einen virtio-Bus.

ANMERKUNG: Windows beschwert sich möglicherweise darüber, dass die Hardware darunter geändert wird, und hat möglicherweise Probleme, die Startdiskette zu finden, nachdem sie von IDE auf SATA oder Virtio geändert wurde.

Ebenso wird die Netzwerkleistung verbessert, wenn Sie den NIC-Typ in virtio ändern.

Welche Version von KVM und Kernel läuft auf Ubuntu? Und welche Version davon auf Debian?

Eine andere Sache, die überprüft werden sollte, ist: Verwendet Ihr Kollege ein Festplatten-Image für die VM wie Sie, oder verwendet er eine unformatierte Festplattenpartition oder ein LVM-Volume oder ähnliches? Disk-Images sind im Vergleich zu Partitionen oder LVM sehr langsam.


Können Sie beschreiben, wie VirtIO-Treiber installiert werden?
Guy Fawkes

Nicht wirklich, sie sind Windows-Treiber. nicht mein Fachgebiet. Ich denke, Sie installieren sie auf die übliche Weise, die Windows-Treiber installiert sind. Ich habe sie vor ein oder zwei Jahren einige Male auf einigen Windows-VMs installiert. IIRC war etwas umständlich wie das Einhängen des CD-Images und die Suche nach dem Installationsprogramm in einem der Unterverzeichnisse und das Klicken darauf.
cas

Ich konnte einem migrierten Windows-Image niemals VirtIO-Treiber hinzufügen. Eine Neudefinition des Festplattenbusses auf VirtIO und Windows würde nicht starten. und versuchen Sie, die VirtIO-Treiber ohne den richtigen Diskbus zu installieren, den ich mir gewünscht hätte.
Todd Partridge "Gen2ly"

Eigentlich können Sie es tun serverfault.com/questions/452854/…
Darokthar

1
Ja, kurz gesagt, Sie müssen der VM eine zweite Festplatte hinzufügen und die virtuellen Treiber dafür installieren. Danach können Sie die ursprüngliche Festplatte auf virtio umstellen und optional die zweite Festplatte entfernen / löschen.
cas

13

Ich hatte auch unglaublich langsame Leistung mit meiner virtuellen Festplatte.
Die folgende Einstellung auf der neuen Festplatte hat alles korrigiert:

  • Speicherformat: roh
  • Cache-Modus: keine (nicht Standard!)
  • E / A-Modus: nativ

Hervorragender Punkt zum Speicherformat. Die Verwendung einer unformatierten Partition anstelle eines Dateicontainers kann sich ebenfalls verbessern.
0xC0000022L

1
Dies sollte die akzeptierte Antwort sein. qcow2 funktioniert zwar gut als Format, aber kein Cache und native führen definitiv zu einer enormen Steigerung.
John

9

Für alle, die auf IDE installiert sind und jetzt zu virtIO wechseln möchten: Eine bequeme Möglichkeit besteht darin, eine sekundäre (nicht startfähige) virtIO-Festplatte zu erstellen. Starten Sie die VM. An diesem Punkt werden Sie von Windows nach den virtIO-Treibern gefragt es weigert sich irgendwie, etwas anderes zu installieren - und schaltet anschließend die Boot-Partition auf virtIO um.


3

Mit all deinen Antworten habe ich mich in dieser Reihenfolge zurechtgefunden:

Installation:

Festplattenkonfiguration wie Sergey sagte. Wenn Sie die VM mit virt-manager erstellen, erstellen Sie die Festplatte nicht sofort (deaktivieren Sie "Speicher aktivieren ..."), klicken Sie im nächsten Bildschirm auf "Konfiguration vor der Installation anpassen" und erstellen Sie die Festplatte direkt danach manuell mit diesen Optionen :

- Storage format: raw
- Cache mode: none (not default!)
- I/O mode: native
- + Disk bus : SATA

Für mich ist die Installation in weniger als 15 Minuten erledigt (statt 27% des Fortschritts nach mehr als 2 Stunden mit Standardparametern)

Erster Neustart:

- Disk bus : IDE (or windows will not boot)
- Installation of the [latest drivers][1] 
  (For that, devices management/install old components/type: storage)

Das System anhalten, den Festplattenbus auf virtio umstellen, neu starten, fertig!

'freude!


1

Sie sollten VirtIO-Treiber unter Windows installieren. Sie können von Fedora erstellte Treiber herunterladen oder eigene Treiber aus dem Quellcode erstellen. Weitere Informationen finden Sie in der KVM-Dokumentation .


2
Bitte posten Sie nicht nur einen Link, sondern fassen Sie die wichtigsten Punkte direkt in Ihrer Antwort zusammen und stellen Sie den Link zur Verfügung, damit Sie weiter darauf verweisen können. In meiner Bearbeitung finden Sie das Minimum, das wir in einer Antwort erwarten. Oder sehen Sie sich Craigs Antwort an, die diesen Link mit einer Erklärung und vielem mehr versieht. Lesen Sie, wie Sie antworten, um weitere Informationen zu erhalten.
Gilles 'SO- hör auf böse zu sein'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.