KVM içinde çalışırken Windows performansı nasıl geliştirilir


14

Ubuntu 12.04 64 bit ve KVM kullanıyorum, CPU'm Core i5 3.3 GHz ve 8 GB DDR3 RAM'im var. Windows 7'yi KVM'de çalıştırıyorum ve son derece yavaş. İş arkadaşım Debian'ı aynı PC yapılandırmasında kullanıyor ve Windows 7'yi çok hızlı çalıştırabilir! Benim sorunum nerede olabilir?

[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 : KVM'yi yüklemeden önce Intel-VT'yi etkinleştirdim. VirtIO sürücülerini başarıyla yükledim ve bana birkaç performans verdi, ancak örneğin Windows'ta Firefox'u açtığımda, fare bile çok yavaş hareket ediyor ve GUI da çok yavaş.

KVM sanal makine yöneticisi


CPU'nuz VT teknolojisini destekliyor mu?
papatya

evet, öyle :)
Guy Fawkes

1
Thx - the - Depolama biçimi: ham - Önbellek modu: yok (varsayılan değil!) - G / Ç modu: yerel - + Disk veri yolu: SATA bunu yaptı. Win7 yüklemesi sırasında "Windows dosyalarını genişletme" değişiklikten hemen sonra saatlerce @% 0 etrafında asılı kalmak yerine saymaya başladı. Tamamen emen SATA NATIVE ve Caching (Writeback) ile ilk denemeyi denediğim için önbelleğe almayı devre dışı bırakmanın hile yaptığını merak ediyorum ve HİÇBİR olarak ayarlanmış önbellekleme ile SATA NATIVE bunu açıkça çözdü ... geri yazma önbellekleme?

Bu uygulamanın adı nedir?
thiagowfx

@ThiagoPerrotta Bu virt-manager (Sanal Makine Yöneticisi)
doug65536

Yanıtlar:


12

Bir başlangıç ​​için, VM'nin IDE veri yolunu taklit edecek şekilde yapılandırıldığından oldukça yavaştır. Bir SATA veriyoluna değiştirmeyi deneyin.

Daha da iyisi, Windows 7'de virtio sürücülerini kurun ve bir virtio veriyoluna değiştirin.

NOT: Windows, altındaki donanımın değiştirilmesinden şikayet edebilir ve IDE'den SATA veya Virtio'ya değiştirildikten sonra önyükleme diskini bulmakta güçlük çekebilir.

Benzer şekilde, NIC türünü virtio olarak değiştirirseniz ağ performansını iyileştirirsiniz.

Ubuntu'da hangi KVM ve çekirdeğin sürümünü kullanıyorsunuz? Debian'da aynı sürüm hangisi?

Kontrol edilmeye değer bir diğer şey şudur: İş arkadaşınız VM için bir disk görüntüsü kullanıyor mu, sizinle aynı mı, yoksa bir ham disk bölümü mü, LVM birimi mi yoksa benzeri mi kullanıyorlar? disk görüntüleri bölümlere veya LVM'ye göre çok yavaştır.


VirtIO sürücülerini nasıl kuracağınızı açıklayabilir misiniz?
Guy Fawkes

değil, onlar windows sürücüleri. benim uzmanlık alanım değil. sanırım windows sürücüleri yüklü olağan şekilde onları yüklemek. Onları bir veya iki yıl önce bazı windows VM'lerine birkaç kez yükledim. IIRC, CD görüntüsünü monte etmek ve alt dizinlerden birinde yükleyici programını aramak ve üzerine tıklamak gibi beceriksiz bir şeydi.
cas

Taşınan bir Windows görüntüsüne VirtIO sürücülerini hiçbir zaman ekleyemedim. Disk veriyolunu VirtIO ve Windows olarak yeniden tanımlamak başlamaz; ve izin vermek istediğim doğru Diskbus olmadan VirtIO sürücülerini yüklemeye çalışın.
Todd Partridge 'Gen2ly'

Aslında bunu yapabilirsiniz serverfault.com/questions/452854/…
Darokthar

1
evet, kısaca VM'ye ikinci bir disk eklemeniz ve bunun için virtio sürücülerini kurmanız gerekir. daha sonra orijinal diski virtio kullanmak üzere değiştirebilir ve isteğe bağlı olarak ikinci diski çıkarabilir / silebilirsiniz.
cas

13

Sanal HDD'imle de inanılmaz yavaş bir performansım oldu.
Yeni HDD'deki aşağıdaki ayar her şeyi düzeltti:

  • Depolama formatı: ham
  • Önbellek modu: yok (varsayılan değil!)
  • G / Ç modu: yerel

Depolama biçimi hakkında mükemmel nokta. Bir dosya kabı yerine ham bir bölüm kullanmak da biraz daha gelişebilir.
0xC0000022L

1
kabul edilen cevap bu olmalıdır. qcow2 bir format olarak iyi çalışıyor, ancak hiçbir önbellek ve yerli kesinlikle büyük bir artışa yol açmıyor.
John

9

IDE'ye yüklenen ve şimdi virtIO'ya geçmek isteyen herkese: Bunu yapmanın uygun bir yolu, ikincil (önyükleme olmayan) bir virtIO disk oluşturmak, VM'yi önyüklemek - bu noktada Windows'un virtIO sürücülerini isteyeceği bir şekilde aksi takılmayı reddediyor ve daha sonra önyükleme bölümünü virtIO'ya geçiriyor.


3

Tüm cevaplarınızı kullanarak, bu sırayla yolumu buldum:

Kurulum :

Sergey gibi HDD yapılandırması dedi. Sanal makine yöneticisini oluştururken, diski hemen oluşturmayın ("depolamayı etkinleştir ..." seçeneğinin işaretini kaldırın), bir sonraki ekranda "yüklemeden önce yapılandırmayı özelleştir" i tıklayın ve bu seçeneklerle HDD'yi hemen sonra manuel olarak oluşturun :

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

Benim için kurulum 15 dakikadan daha az bir sürede yapılır (varsayılan parametrelerle 2H'den fazla ilerlemenin% 27'si yerine)

İlk yeniden başlatma:

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

Sistemi durdurun, disk veriyolunu virtio olarak değiştirin, yeniden başlatın, hepsi bu!

sevinç!


1

VirtIO sürücülerini Windows altına kurmalısınız. Şunları yapabilirsiniz Fedora tarafından inşa sürücüleri indirmek veya kaynaktan kendi inşa bkz KVM belgelerine bilgi için bkz.


2
Lütfen sadece bir bağlantı göndermeyin, ana noktaları doğrudan cevabınızda özetleyin ve daha fazla referans için bağlantıyı sağlayın. Bir yanıtta beklediğimiz minimum tür için düzenlememe bakın. Veya Craig'in bu bağlantıyı bir açıklama ve çok daha fazlasını sağlayan cevabına bakın . Daha fazla bilgi için nasıl yanıt vereceğinizi okuyun .
Gilles 'SO- kötü olmayı bırak'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.