Cara meningkatkan kinerja Windows saat berjalan di dalam KVM

14

Saya menggunakan Ubuntu 12,04 64-bit dan KVM, CPU saya adalah Core i5 3.3 GHz dan saya memiliki 8 GB RAM DDR3. Saya menjalankan Windows 7 di KVM dan ini sangat lambat. Rekan kerja saya menggunakan Debian pada konfigurasi PC yang sama dan dapat menjalankan Windows 7 dengan sangat cepat! Di mana bisa masalah saya?

[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 : Saya telah mengaktifkan Intel-VT sebelum menginstal KVM. Saya telah berhasil menginstal driver VirtIO, dan itu memberi saya beberapa kinerja, tetapi, misalnya, ketika saya membuka Firefox di Windows, bahkan mouse bergerak sangat lambat, dan GUI juga sangat lambat.

Manajer mesin virtual KVM

Guy Fawkes
sumber
Apakah CPU Anda mendukung teknologi VT?
daisy
ya, ya :)
Guy Fawkes
1
Thx - the - Format penyimpanan: raw - Mode cache: tidak ada (tidak standar!) - Mode I / O: asli - + Disk bus: SATA berhasil. "Memperluas file Windows" selama Instalasi Win7 mulai menghitung segera setelah perubahan bukannya berkeliaran di @ 0% selama berjam-jam. Saya bertanya-tanya mengapa menonaktifkan caching melakukan trik, ketika saya mencoba upaya pertama dengan SATA NATIVE dan Caching (Writeback), yang menyedot sepenuhnya, dan SATA NATIVE dengan caching yang diatur ke NONE menyelesaikannya dengan jelas ... Biasanya saya mengharapkan peningkatan kinerja dari caching writeback?
Apa nama aplikasi ini?
thiagowfx
@ThiagoPerrotta Itu virt-manager (Virtual Machine Manager)
doug65536

Jawaban:

11

Sebagai permulaan, Anda memiliki VM yang dikonfigurasi untuk meniru bus IDE, yang sangat lambat. Coba ubah ke bus SATA.

Lebih baik lagi, instal driver virtio di Windows 7, dan ubah menjadi virtio bus.

CATATAN: Windows mungkin mengeluh tentang perangkat keras yang diubah di bawahnya, dan mungkin mengalami kesulitan menemukan disk boot setelah diubah dari IDE ke SATA atau Virtio.

Demikian pula, Anda akan mendapatkan peningkatan kinerja jaringan jika Anda mengubah jenis NIC ke virtio.

Versi KVM dan kernel apa yang Anda jalankan di ubuntu? Dan versi apa yang sama pada debian?

Satu hal lagi yang patut diperiksa adalah: apakah rekan kerja Anda menggunakan disk-image untuk VM, sama seperti Anda, atau mereka menggunakan partisi disk mentah atau volume LVM atau serupa? disk-gambar sangat lambat dibandingkan dengan partisi atau LVM.

cas
sumber
Bisakah Anda menjelaskan cara menginstal driver VirtIO?
Guy Fawkes
tidak juga, mereka driver windows. bukan bidang keahlian saya. saya kira Anda menginstalnya dengan cara yang biasa bahwa driver windows diinstal. saya memang menginstalnya beberapa kali pada beberapa VM windows satu atau dua tahun yang lalu. IIRC itu adalah sesuatu yang kikuk seperti me-mount gambar CD dan mencari program installer di salah satu subdirektori dan mengkliknya.
cas
Saya tidak pernah dapat menambahkan driver VirtIO pada gambar Windows yang ada dan dimigrasi. Mendefinisikan ulang bus Disk ke VirtIO dan Windows tidak akan mulai; dan mencoba untuk menginstal driver Virtio tanpa Diskbus yang tepat saya ingin diizinkan.
Todd Partridge 'Gen2ly'
Sebenarnya Anda bisa melakukannya serverfault.com/questions/452854/…
Darokthar
1
ya, singkatnya Anda harus menambahkan disk kedua ke VM dan menginstal driver virtio untuk itu. setelah itu Anda dapat mengganti disk asli untuk menggunakan virtio, dan secara opsional lepaskan / hapus disk kedua.
cas
13

Saya juga memiliki kinerja yang sangat lambat dengan HDD virtual saya.
Pengaturan berikut pada HDD baru mengoreksi semuanya:

  • Format penyimpanan: mentah
  • Mode cache: tidak ada (tidak standar!)
  • Mode I / O: asli
Sergey
sumber
Poin luar biasa tentang format penyimpanan. Menggunakan partisi mentah sebagai pengganti wadah file juga dapat meningkatkan sedikit lagi.
0xC0000022L
1
ini harus menjadi jawaban yang diterima. qcow2 berfungsi dengan baik sebagai format, tetapi tidak ada cache dan asli pasti mengarah ke dorongan besar.
John
9

Bagi siapa saja yang menginstal pada IDE dan sekarang ingin beralih ke virtIO: Cara mudah untuk melakukannya adalah dengan membuat disk virtIO sekunder (non-boot), boot VM - di mana Windows akan meminta driver virtIO, yang itu entah bagaimana menolak untuk menginstal sebaliknya - dan kemudian beralih partisi boot ke virtIO.

hardyharzen
sumber
3

Dengan menggunakan semua jawaban Anda, saya menemukan cara saya dalam urutan ini:

Instalasi:

Konfigurasi HDD seperti kata Sergey. Saat membuat VM dengan virt-manager, jangan langsung membuat disk (hapus centang "aktifkan penyimpanan ..."), klik "sesuaikan konfigurasi sebelum menginstal" pada layar berikutnya, dan buat HDD secara manual tepat setelahnya, dengan opsi ini :

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

Bagi saya, instalasi dilakukan dalam waktu kurang dari 15 menit (bukan 27% dari progres setelah lebih dari 2 jam dengan parameter default)

Reboot pertama:

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

Hentikan sistem, pasang kembali bus disk ke virtio, reboot, itu dia!

'sukacita!

tisc0
sumber
1

Anda harus menginstal driver VirtIO di Windows. Anda dapat mengunduh driver yang dibuat oleh Fedora atau membuat sendiri dari sumbernya, lihat dokumentasi KVM untuk informasi.

Shugendo
sumber
2
Tolong jangan hanya memposting tautan, merangkum poin-poin utama langsung dalam jawaban Anda dan berikan tautan untuk referensi lebih lanjut. Lihat hasil edit saya untuk jenis minimum yang kami harapkan dalam jawaban. Atau lihat jawaban Craig yang memberikan tautan ini dengan penjelasan dan masih banyak lagi. Baca cara menjawab untuk informasi lebih lanjut.
Gilles 'SANGAT berhenti menjadi jahat'