Cách cải thiện độ hoàn hảo của Windows khi chạy bên trong KVM


14

Tôi sử dụng Ubuntu 12.04 64-bit và KVM, CPU của tôi là Core i5 3.3 GHz và tôi có RAM 8 GB DDR3. Tôi chạy Windows 7 trong KVM và nó cực kỳ chậm. Đồng nghiệp của tôi sử dụng Debian trên cùng một cấu hình PC và có thể chạy Windows 7 cực nhanh! Trường hợp có thể là vấn đề của tôi?

[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>

CẬP NHẬT : Tôi đã kích hoạt Intel-VT trước khi cài đặt KVM. Tôi đã cài đặt thành công trình điều khiển VirtIO và nó mang lại cho tôi một số hiệu suất, nhưng, ví dụ, khi tôi mở Firefox trong Windows, ngay cả chuột cũng di chuyển rất chậm và GUI cũng rất chậm.

Quản lý máy ảo KVM


CPU của bạn có hỗ trợ công nghệ VT không?
cúc

vâng, đúng vậy :)
Guy Fawkes

1
Thx - the - Định dạng lưu trữ: raw - Chế độ bộ đệm: không (không mặc định!) - Chế độ I / O: bản địa - + Đĩa bus: SATA đã làm điều đó. "Mở rộng tệp Windows" trong khi cài đặt Win7 đã bắt đầu đếm ngay lập tức sau khi thay đổi thay vì treo khoảng @ 0% trong nhiều giờ. Tôi tự hỏi tại sao việc vô hiệu hóa bộ nhớ đệm lại là mánh khóe, vì tôi đã thử lần đầu tiên với SATA NATIVE và bộ nhớ đệm (WritBack), nó hoàn toàn bị thu hút và SATA NATIVE với bộ nhớ đệm được đặt thành KHÔNG rõ ràng ... Thông thường tôi mong đợi hiệu suất tăng từ ghi lại bộ nhớ đệm?

Tên của ứng dụng này là gì?
thiagowfx

@ThiagoPerrotta Đó là người quản lý tài năng (Trình quản lý máy ảo)
doug65536

Câu trả lời:


11

Để bắt đầu, bạn đã cấu hình VM để mô phỏng bus IDE, tốc độ khá chậm. Hãy thử thay đổi nó thành một chiếc xe buýt SATA.

Tốt hơn hết, hãy cài đặt trình điều khiển virtio trong Windows 7 và thay đổi nó thành một bus bus.

LƯU Ý: Windows có thể phàn nàn về phần cứng bị thay đổi bên dưới nó và có thể gặp khó khăn khi tìm đĩa khởi động sau khi đã thay đổi từ IDE sang SATA hoặc Virtio.

Tương tự như vậy, bạn sẽ có được hiệu suất mạng được cải thiện nếu bạn thay đổi loại NIC thành virtio.

Phiên bản nào của KVM và kernel bạn đang chạy trên Ubuntu? Và phiên bản nào giống nhau trên debian?

Một điều đáng kiểm tra khác là: đồng nghiệp của bạn có sử dụng hình ảnh đĩa cho VM, giống như bạn không, hoặc họ đang sử dụng phân vùng đĩa thô hoặc ổ đĩa LVM hoặc tương tự? hình ảnh đĩa rất chậm so với phân vùng hoặc LVM.


Bạn có thể mô tả cách cài đặt trình điều khiển VirtIO?
Guy Fawkes

không thực sự, họ là trình điều khiển windows. không phải lĩnh vực chuyên môn của tôi. Tôi đoán bạn cài đặt chúng theo cách thông thường mà trình điều khiển windows được cài đặt. tôi đã cài đặt chúng một vài lần trên một số máy ảo Windows một hoặc hai năm trước. IIRC đó là một cái gì đó vụng về như gắn hình ảnh CD và săn chương trình cài đặt trong một trong các thư mục con và nhấp vào nó.
cas

Tôi không bao giờ có thể thêm trình điều khiển VirtIO trên hình ảnh Windows đã di chuyển. Xác định lại Bus Disk thành VirtIO và Windows sẽ không khởi động; và cố gắng cài đặt trình điều khiển VirtIO mà không có Diskbus phù hợp mà tôi muốn được cho phép.
Todd Partridge 'Gen2ly'

Trên thực tế bạn có thể làm điều đó serverfault.com/questions/452854/...
Darokthar

1
vâng, tóm lại, bạn phải thêm một đĩa thứ hai vào VM và cài đặt trình điều khiển virtio cho điều đó. Sau đó, bạn có thể chuyển đổi đĩa gốc để sử dụng virtio và tùy ý tách / xóa đĩa thứ hai.
cas

13

Tôi cũng có hiệu suất cực kỳ chậm với ổ cứng ảo của mình.
Cài đặt sau trên ổ cứng mới đã sửa mọi thứ:

  • Định dạng lưu trữ: thô
  • Chế độ bộ nhớ cache: không có (không mặc định!)
  • Chế độ I / O: bản địa

Điểm tuyệt vời về định dạng lưu trữ. Sử dụng phân vùng thô thay vì vùng chứa tệp cũng có thể cải thiện hơn một chút.
0xC0000022L

1
đây sẽ là câu trả lời được chấp nhận qcow2 hoạt động tốt như một định dạng, nhưng không có bộ nhớ cache và bản địa chắc chắn dẫn đến một sự gia tăng lớn.
John

9

Đối với bất kỳ ai đã cài đặt trên IDE và bây giờ muốn chuyển sang virtIO: Cách thuận tiện để thực hiện là tạo một đĩa virtIO thứ cấp (không khởi động), khởi động VM - lúc đó Windows sẽ yêu cầu trình điều khiển virtIO bằng cách nào đó nó từ chối cài đặt khác - và sau đó chuyển phân vùng khởi động sang virtIO.


3

Sử dụng tất cả các câu trả lời của bạn, tôi tìm thấy con đường của mình theo thứ tự này:

Cài đặt :

Cấu hình ổ cứng như Serge nói. Khi tạo VM bằng virt-manager, đừng tạo đĩa ngay lập tức (bỏ chọn "bật lưu trữ ..."), bấm "tùy chỉnh cấu hình trước khi cài đặt" trên màn hình tiếp theo và tạo ổ cứng theo cách thủ công ngay sau đó, với tùy chọn này :

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

Đối với tôi, việc cài đặt được thực hiện trong vòng chưa đầy 15 phút (thay vì 27% tiến triển sau hơn 2H với các tham số mặc định)

Lần khởi động lại đầu tiên:

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

Dừng hệ thống, kiểm tra lại bus bus thành virtio, khởi động lại, thế thôi!

'vui sướng !


1

Bạn nên cài đặt trình điều khiển VirtIO trong Windows. Bạn có thể tải xuống trình điều khiển được xây dựng bởi Fedora hoặc tự xây dựng từ nguồn, xem tài liệu KVM để biết thông tin.


2
Xin đừng chỉ đăng một liên kết, tóm tắt những điểm chính trực tiếp trong câu trả lời của bạn và cung cấp liên kết để tham khảo thêm. Xem chỉnh sửa của tôi để biết loại tối thiểu mà chúng tôi mong đợi trong câu trả lời. Hoặc xem câu trả lời của Craig cung cấp liên kết này với lời giải thích và hơn thế nữa. Đọc cách trả lời để biết thêm thông tin.
Gilles 'SO- ngừng trở nên xấu xa'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.