Jak poprawić wydajność systemu Windows podczas działania w KVM

14

Używam Ubuntu 12.04 64-bit i KVM, mój procesor to Core i5 3,3 GHz i mam 8 GB pamięci RAM DDR3. Używam Windows 7 w KVM i jest on bardzo wolny. Mój współpracownik używa Debiana na tej samej konfiguracji komputera i może bardzo szybko uruchomić system Windows 7! Gdzie może być mój problem?

[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 : Włączyłem Intel-VT przed instalacją KVM. Pomyślnie zainstalowałem sterowniki VirtIO, co dało mi trochę wydajności, ale na przykład, kiedy otwieram Firefox w Windows, nawet mysz porusza się bardzo wolno, a GUI jest również bardzo wolny.

Menedżer maszyn wirtualnych KVM

Guy Fawkes
źródło
Czy twój procesor obsługuje technologię VT?
stokrotka
tak, robi :)
Guy Fawkes,
1
Thx - the - Format pamięci: raw - Tryb pamięci podręcznej: brak (domyślnie!) - Tryb I / O: macierzysty - + Magistrala dyskowa: SATA to zrobiła. „Rozszerzanie plików systemu Windows” podczas instalacji Win7 zaczęło się odliczać natychmiast po zmianie zamiast zawieszać się na poziomie 0% przez wiele godzin. Zastanawiam się, dlaczego wyłączenie buforowania ma sens, ponieważ próbowałem po raz pierwszy z SATA NATIVE i Caching (Writeback), co było całkowicie do bani, a SATA NATIVE z ustawieniem buforowania na NONE rozwiązało to oczywiście ... Normalnie oczekiwałbym wzrostu wydajności po buforowanie z zapisem zwrotnym?
Jak nazywa się ta aplikacja?
thiagowfx
@ThiagoPerrotta That's virt-manager (Virtual Machine Manager)
doug65536,

Odpowiedzi:

11

Na początek masz maszynę wirtualną skonfigurowaną do emulacji magistrali IDE, co jest dość wolne. Spróbuj zmienić go na magistralę SATA.

Jeszcze lepiej, zainstaluj sterowniki virtio w systemie Windows 7 i zmień je na autobus virtio.

UWAGA: Windows może narzekać na zmianę sprzętu pod nim i może mieć trudności ze znalezieniem dysku rozruchowego po zmianie z IDE na SATA lub Virtio.

Podobnie, poprawisz wydajność sieci, jeśli zmienisz typ karty sieciowej na virtio.

Jakiej wersji KVM i jądra używasz na Ubuntu? A jaka to wersja na Debianie?

Jeszcze jedna rzecz, którą warto sprawdzić: czy Twój współpracownik używa obrazu dysku dla maszyny Wirtualnej, tak jak Ty, czy używa surowej partycji dysku lub woluminu LVM lub podobnego? obrazy dysków są bardzo wolne w porównaniu do partycji lub LVM.

cas
źródło
Czy możesz opisać, jak zainstalować sterowniki VirtIO?
Guy Fawkes,
nie bardzo, to sterowniki Windows. nie moja specjalizacja. Domyślam się, że instalujesz je w zwykły sposób, tak jak sterowniki Windows. zainstalowałem je kilka razy na niektórych maszynach wirtualnych z systemem Windows rok lub dwa lata temu. IIRC było to coś niezręcznego, jak zamontowanie obrazu CD i poszukiwanie programu instalacyjnego w jednym z podkatalogów i kliknięcie go.
cas
Nigdy nie byłem w stanie dodać sterowników VirtIO do migrowanego obrazu systemu Windows. Przedefiniowanie magistrali dyskowej na VirtIO i Windows nie uruchomi się; i spróbuj zainstalować sterowniki VirtIO bez odpowiedniej Diskbus. Chciałbym mieć pozwolenie.
Todd Partridge „Gen2ly”
Właściwie możesz to zrobić serverfault.com/questions/452854/…
Darokthar
1
tak, krótko mówiąc, musisz dodać drugi dysk do maszyny wirtualnej i zainstalować do tego sterowniki virtio. następnie możesz przełączyć oryginalny dysk na virtio i opcjonalnie odłączyć / usunąć drugi dysk.
cas
13

Miałem też niesamowicie niską wydajność na moim wirtualnym dysku twardym.
Poniższe ustawienia na nowym dysku twardym poprawiły wszystko:

  • Format przechowywania: surowy
  • Tryb pamięci podręcznej: brak (domyślnie!)
  • Tryb I / O: macierzysty
Siergiej
źródło
Doskonały punkt na temat formatu przechowywania. Użycie surowej partycji zamiast kontenera plików może również nieco poprawić.
0xC0000022L,
1
to powinna być zaakceptowana odpowiedź. qcow2 działa dobrze jako format, ale brak pamięci podręcznej i natywnej zdecydowanie prowadzi do ogromnego przyspieszenia.
John
9

Dla każdego, kto zainstalował na IDE i teraz chce przejść na virtIO: Wygodnym sposobem na to jest utworzenie dodatkowego dysku virtIO (bez rozruchu), uruchom maszynę wirtualną - w tym momencie system Windows poprosi o sterowniki virtIO, które w jakiś sposób odmawia instalacji w inny sposób - a następnie przełącza partycję rozruchową na virtIO.

hardyharzen
źródło
3

Korzystając ze wszystkich odpowiedzi, znalazłem swoją drogę w następującej kolejności:

Instalacja:

Konfiguracja HDD, jak powiedział Sergey. Tworząc maszynę wirtualną za pomocą virt-managera, nie twórz dysku od razu (odznacz „włącz przechowywanie ...”), kliknij „dostosuj konfigurację przed instalacją” na następnym ekranie, a następnie utwórz dysk twardy ręcznie, korzystając z tych opcji :

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

Dla mnie instalacja odbywa się w mniej niż 15 minut (zamiast 27% progresji po ponad 2 godzinach z domyślnymi parametrami)

Pierwsze uruchomienie:

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

Zatrzymaj system, zmień magistralę dyskową na virtio, uruchom ponownie, to wszystko!

„radość!

tisc0
źródło
1

Należy zainstalować sterowniki VirtIO w systemie Windows. Możesz pobrać sterowniki zbudowane przez Fedorę lub zbudować własne ze źródła, zobacz informacje w dokumentacji KVM .

Shugendo
źródło
2
Proszę nie tylko zamieszczać link, podsumować główne punkty bezpośrednio w odpowiedzi i podać link do dalszych informacji. Zobacz moją edycję dla rodzaju minimum, którego oczekujemy w odpowiedzi. Lub zobacz odpowiedź Craiga, która zawiera ten link z wyjaśnieniem i nie tylko. Przeczytaj, jak odpowiedzieć, aby uzyskać więcej informacji.
Gilles „SO- przestań być zły”