Windows-7

使用 libvirt 管理的 kvm 64 主機上 win7 64 來賓的最佳設置

  • December 20, 2012

我正在使用 libvirt 在執行 Debian Squeeze amd64 的相當新的(核心 i3)主機上控制 kvm。主機和 Linux 來賓工作並且感覺快速且響應迅速。只需為 windows7 安裝帶有 virt-manager 標準配置文件的 Win7 就需要很長時間。我主要歸咎於磁碟 io,但 Windows 一般似乎不如 linux guest 響應速度快。

您對 kvm 上 Win7 客戶機的性能優化設置有一些提示嗎?

(很抱歉有很多轉儲,但我認為它們可以作為參考。)

主機配置:

kvm: Version: 1:0.12.5+dfsg-5+squeeze8
libvirt-bin: Version: 0.8.3-5+squeeze2

virsh 轉儲xml:

<domain type='kvm' id='27'>
 <name>win7-template</name>
 <uuid>a4eb05fa-0d4e-5ced-2ff1-e15507795d1b</uuid>
 <memory>2097152</memory>
 <currentMemory>2097152</currentMemory>
 <vcpu>2</vcpu>
 <os>
   <type arch='x86_64' machine='pc-0.12'>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/win7-template.img'/>
     <target dev='hda' bus='ide'/>
     <alias name='ide0-0-0'/>
     <address type='drive' controller='0' bus='0' unit='0'/>
   </disk>
   <disk type='file' device='cdrom'>
     <driver name='qemu' type='raw'/>
     <source file='/var/lib/libvirt/images/isos/de_windows_7_professional_with_sp1_x64_dvd.iso'/>
     <target dev='hdc' bus='ide'/>
     <readonly/>
     <alias name='ide0-1-0'/>
     <address type='drive' controller='0' bus='1' unit='0'/>
   </disk>
   <controller type='ide' index='0'>
     <alias name='ide0'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
   </controller>
   <interface type='network'>
     <mac address='52:54:00:af:89:f2'/>
     <source network='default'/>
     <target dev='vnet2'/>
     <alias name='net0'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
   </interface>
   <serial type='pty'>
     <source path='/dev/pts/5'/>
     <target port='0'/>
     <alias name='serial0'/>
   </serial>
   <console type='pty' tty='/dev/pts/5'>
     <source path='/dev/pts/5'/>
     <target type='serial' port='0'/>
     <alias name='serial0'/>
   </console>
   <input type='tablet' bus='usb'>
     <alias name='input0'/>
   </input>
   <input type='mouse' bus='ps2'/>
   <graphics type='vnc' port='5902' autoport='yes'/>
   <video>
     <model type='vga' vram='9216' heads='1'/>
     <alias name='video0'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
   </video>
   <memballoon model='virtio'>
     <alias name='balloon0'/>
     <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
   </memballoon>
 </devices>
</domain>

貓/proc/cpuinfo(片段)

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 37
model name  : Intel(R) Core(TM) i3 CPU         540  @ 3.07GHz
stepping    : 2
cpu MHz     : 3058.386
cache size  : 4096 KB
physical id : 0
siblings    : 4
core id     : 2
cpu cores   : 2
apicid      : 5
initial apicid  : 5
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat tpr_shadow vnmi flexpriority ept vpid
bogomips    : 6117.86
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
  1. 將 virtio 用於磁碟和網路。
  2. 對於保存圖像和 iso 的掛載點,請使用 noatime 和 nodiratime 選項
  3. 在主機上使用截止日期調度程序
  4. 為影片使用 spice/qxl 以獲得適當的影片性能

我剛剛安裝了 Windows 7,然後在安裝後更改了磁碟以使用 virtio。

為了載入驅動程序,我添加了一個臨時 virtio 設備 (1G),然後重新啟動了來賓。然後,通過設備管理器為 virtio 載入 Windows 驅動程序。

然後,關閉來賓,將主磁碟從 IDE 更改為 virtio。因為 Windows 7 已經從我的臨時設備載入了 virtio 驅動程序,所以它可以很好地應對 IDE 磁碟更改為 virtio。

引用自:https://serverfault.com/questions/397485