วิธีปรับปรุง Windows perfomance เมื่อทำงานภายใน KVM


14

ฉันใช้ Ubuntu 12.04 64- บิตและ KVM CPU ของฉันคือ Core i5 3.3 GHz และฉันมี DDR3 RAM 8 GB ฉันเรียกใช้ Windows 7 ใน KVM และมันช้ามาก เพื่อนร่วมงานของฉันใช้ Debian ในการกำหนดค่าพีซีเดียวกันและสามารถเรียกใช้ Windows 7 ได้อย่างรวดเร็วที่สุด! ปัญหาของฉันอยู่ที่ไหน

[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 : ฉันเปิดใช้งาน Intel-VT ก่อนที่จะติดตั้ง KVM ฉันติดตั้งไดรเวอร์ VirtIO สำเร็จแล้วและมันก็ทำให้ประสิทธิภาพการทำงานของฉันลดลง แต่ตัวอย่างเช่นเมื่อฉันเปิด Firefox ใน Windows แม้กระทั่งเมาส์เคลื่อนไหวช้ามากและ GUI ก็ช้าเกินไป

เครื่องมือจัดการเครื่องเสมือนของ KVM


CPU ของคุณรองรับเทคโนโลยี VT หรือไม่?
เดซี่

ใช่มันเป็นเช่นนั้น :)
Guy Fawkes

1
ขอบคุณ - รูปแบบการจัดเก็บข้อมูล: ดิบ - โหมดแคช: ไม่มี (ไม่ใช่ค่าเริ่มต้น!) - โหมด I / O: เนทีฟ - + ดิสก์บัส: SATA ทำ "การขยายไฟล์ Windows" ในระหว่างการติดตั้ง Win7 ไม่เริ่มนับทันทีหลังจากการเปลี่ยนแปลงแทนที่จะอยู่ประมาณ @ 0% เป็นเวลาหลายชั่วโมง ฉันสงสัยว่าทำไมการปิดใช้งานการแคชทำเคล็ดลับเนื่องจากฉันพยายามครั้งแรกกับ SATA NATIVE และ Caching (Writeback) ซึ่งถูกดูดอย่างสมบูรณ์และ SATA NATIVE ที่มีการตั้งค่าการแคชเป็น NONE แก้ไขได้อย่างชัดเจน ... โดยปกติฉันคาดหวังว่าประสิทธิภาพที่เพิ่มขึ้น แคชการเขียนกลับ

แอปพลิเคชั่นนี้ชื่ออะไร?
thiagowfx

@ThiagoPerrotta นั่นเป็น virt-manager (ผู้จัดการเครื่องเสมือน)
doug65536

คำตอบ:


11

สำหรับการเริ่มต้นคุณมี VM ที่กำหนดค่าให้เลียนแบบ IDE บัสซึ่งค่อนข้างช้า ลองเปลี่ยนเป็นบัส SATA

ยังดีกว่าติดตั้งไดรเวอร์ virtioใน Windows 7 และเปลี่ยนเป็นรถบัส virtio

หมายเหตุ: Windows อาจบ่นเกี่ยวกับฮาร์ดแวร์ที่มีการเปลี่ยนแปลงภายใต้และอาจมีปัญหาในการค้นหาดิสก์สำหรับบูตหลังจากเปลี่ยนจาก IDE เป็น SATA หรือ Virtio

ในทำนองเดียวกันคุณจะได้รับประสิทธิภาพเครือข่ายที่ดีขึ้นหากคุณเปลี่ยนประเภท NIC เป็น virtio

KVM และเคอร์เนลรุ่นใดที่คุณใช้บน Ubuntu แล้วเดเบียนรุ่นไหนกัน

สิ่งหนึ่งที่ควรค่าแก่การตรวจสอบคือ: เพื่อนร่วมงานของคุณใช้ดิสก์อิมเมจสำหรับ VM เช่นเดียวกับคุณหรือพวกเขากำลังใช้พาร์ติชันดิสก์ดิบหรือปริมาณ LVM หรือคล้ายกันหรือไม่ ภาพดิสก์ช้ามากเมื่อเทียบกับพาร์ติชันหรือ LVM


คุณสามารถอธิบายวิธีติดตั้งไดรเวอร์ VirtIO ได้หรือไม่?
Guy Fawkes

ไม่จริงๆพวกเขาเป็นไดรเวอร์ windows ไม่ใช่ความเชี่ยวชาญของฉัน ฉันเดาว่าคุณจะติดตั้งในวิธีปกติที่ติดตั้งไดรเวอร์ windows ฉันติดตั้งพวกเขาสองสามครั้งใน windows VMs บางปีหรือสองปีที่แล้ว IIRC มันเป็นสิ่งที่งุ่มง่ามเช่นเมานต์อิมเมจซีดีและค้นหาโปรแกรมติดตั้งในหนึ่งในไดเรกทอรีย่อยและคลิกที่มัน
cas

ฉันไม่สามารถเพิ่มไดรเวอร์ VirtIO ในอิมเมจ Windows ที่มีการโยกย้ายได้ การกำหนดดิสก์บัสใหม่ให้กับ VirtIO และ Windows จะไม่เริ่มต้น และลองติดตั้งไดรเวอร์ VirtIO โดยไม่มี Diskbus ที่ถูกต้องที่ฉันต้องการอนุญาต
ทอดด์นกกระทา 'Gen2ly'

จริงๆแล้วคุณสามารถทำมันได้serverfault.com/questions/452854/…
Darokthar

1
ใช่ในระยะสั้นคุณต้องเพิ่มดิสก์ที่สองลงใน VM และติดตั้งไดรเวอร์ virtio สำหรับสิ่งนั้น หลังจากนั้นคุณสามารถเปลี่ยนดิสก์ดั้งเดิมเพื่อใช้ virtio และเลือกที่จะแยก / ลบดิสก์ที่สอง
cas

13

ฉันยังมีประสิทธิภาพการทำงานช้าอย่างไม่น่าเชื่อกับ HDD เสมือนของฉัน
การตั้งค่าต่อไปนี้สำหรับ HDD ใหม่แก้ไขทุกอย่าง:

  • รูปแบบการจัดเก็บ: ดิบ
  • โหมดแคช: ไม่มี (ไม่ใช่ค่าเริ่มต้น!)
  • โหมด I / O: ดั้งเดิม

จุดที่ยอดเยี่ยมเกี่ยวกับรูปแบบการจัดเก็บ การใช้พาร์ติชัน raw แทนการจัดเก็บไฟล์อาจปรับปรุงให้ดีขึ้นอีกเล็กน้อย
0xC0000022L

1
นี่ควรเป็นคำตอบที่ยอมรับได้ qcow2 ทำงานได้ดีเหมือนรูปแบบ แต่ไม่มีแคชและเนทิฟใดที่จะนำไปสู่การเพิ่มขึ้นอย่างมหาศาล
John

9

สำหรับทุกคนที่ติดตั้งบน IDE และตอนนี้ต้องการเปลี่ยนไปใช้ virtIO: วิธีที่สะดวกในการทำเช่นนี้คือการสร้างดิสก์ virtIO รอง (ไม่ใช่บูต) ให้บูต VM - ณ จุดใด Windows จะถามไดรเวอร์ virtIO ซึ่ง มันปฏิเสธที่จะติดตั้งเป็นอย่างอื่น - และต่อมาเปลี่ยนพาร์ติชันสำหรับบูตเป็น virtIO


3

ใช้คำตอบทั้งหมดของคุณฉันพบวิธีของฉันในลำดับนี้

การติดตั้ง :

การกำหนดค่า HDD เช่น Sergey กล่าว เมื่อสร้าง VM ด้วย virt-manager อย่าสร้างดิสก์ทันที (unclick "enable storage ... "), clic "ปรับแต่งการกำหนดค่าก่อนติดตั้ง" ในหน้าจอถัดไปและสร้าง HDD ด้วยตนเองหลังจากนั้นด้วยตัวเลือกนี้ :

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

สำหรับฉันการติดตั้งทำได้ในเวลาน้อยกว่า 15 นาที (มากกว่า 27% ของความก้าวหน้าหลังจากมากกว่า 2H ด้วยพารามิเตอร์เริ่มต้น)

รีบูตครั้งแรก:

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

หยุดระบบเปลี่ยนดิสก์บัสเป็น virtio รีบูตนั่นแหล่ะ!

'ความสุข!


1

คุณควรติดตั้งไดรเวอร์ VirtIO ใน Windows คุณสามารถดาวน์โหลดไดรเวอร์ที่สร้างโดย Fedoraหรือสร้างของคุณเองจากแหล่งที่มาดูเอกสารประกอบของ KVMสำหรับข้อมูล


2
โปรดอย่าเพิ่งโพสต์ลิงก์โดยสรุปประเด็นหลักในคำตอบของคุณโดยตรงและระบุลิงก์สำหรับการอ้างอิงเพิ่มเติม ดูการแก้ไขขั้นต่ำที่เราคาดหวังในคำตอบ หรือดูคำตอบของ Craigที่ให้คำอธิบายและลิงค์อื่น ๆ นอกเหนือจากนี้ อ่านวิธีการตอบคำถามสำหรับข้อมูลเพิ่มเติม
Gilles 'หยุดความชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.