Як покращити ефективність Windows під час роботи всередині KVM


14

Я використовую Ubuntu 12.04 64-бітний і KVM, мій процесор - Core i5 3,3 ГГц, і у мене є 8 ГБ оперативної пам’яті DDR3. Я запускаю 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, навіть миша рухається дуже повільно, а графічний інтерфейс теж дуже повільний.

Менеджер віртуальних машин KVM


Чи підтримує ваш процесор технологію VT?
ромашка

так, це так :)
Гай Фоукс

1
Thx - the - Формат зберігання: raw - Кеш-режим: жоден (не за замовчуванням!) - Режим вводу / виводу: native - + Дискова шина: SATA зробив це. "Розширення файлів Windows" під час встановлення Win7 все-таки почалося підрахунок одразу після зміни, замість того, щоб годинами зависати біля 0%. Цікаво, чому відключення кешування робить трюк, тому що я спробував першу спробу з SATA NATIVE та Caching (Writeback), які повністю висмокталися, і SATA NATIVE з кешуванням, встановленим на NONE, вирішили це очевидно ... Зазвичай я очікую збільшення продуктивності від кешування назад

Як називається ця програма?
thiagowfx

@ThiagoPerrotta That is virt-manager (Менеджер віртуальної машини)
doug65536

Відповіді:


11

Для початку у вас налаштований VM для емуляції шини IDE, яка відбувається досить повільно. Спробуйте змінити його на шину SATA.

А ще краще - встановити драйвери virtio в Windows 7 та змінити його на шину virtio.

ПРИМІТКА: Windows може скаржитися на зміну обладнання під ним, і можуть виникнути труднощі з пошуком завантажувального диска після його переходу з IDE на SATA або Virtio.

Аналогічно, ви отримаєте покращену продуктивність мережі, якщо зміните тип NIC на virtio.

Яку версію KVM та ядра ви працюєте на ubuntu? І яка версія такої ж на debian?

Ще одна річ, яку варто перевірити, це: чи працює ваш колега із зображенням диска для VM таким же, як і ви, або вони використовують нерозроблений розділ диска або об'єм LVM чи подібні? Образи диска дуже повільні порівняно з розділами або LVM.


Чи можете ви описати, як встановити драйвери VirtIO?
Гай Фоукс

насправді вони не драйвери Windows. не моя область знань. Я б здогадався, ви встановите їх звичайним чином, коли встановлені драйвери Windows. я встановив їх кілька разів на деяких віртуальних машинах рік або два тому. IIRC це було щось незграбне, як встановити образ CD та полювати на програму інсталятора в одному з підкаталогів та натиснути на нього.
cas

Мені ніколи не вдалося додати драйвери VirtIO до перенесеного існуючого зображення Windows. Перевизначення дискової шини до VirtIO та Windows не запустилося б; і спробуйте встановити драйвери VirtIO без потрібного Diskbus, я б хотів, щоб це було дозволено.
Тодд Партрідж 'Gen2ly'

Насправді ви можете це зробити serverfault.com/questions/452854/…
Darokthar

1
так, коротше кажучи, ви повинні додати другий диск до VM і встановити для цього драйвери virtio. після цього ви можете переключити оригінальний диск на використання virtio, а при необхідності від'єднати / видалити другий диск.
cas

13

Я також мав неймовірно повільну продуктивність зі своїм віртуальним HDD.
Наступні налаштування на новому жорсткому диску виправили все:

  • Формат зберігання: необроблений
  • Режим кешу: немає (не за замовчуванням!)
  • Режим вводу / виводу: рідний

Відмінний момент щодо формату зберігання. Використання необробленого розділу замість контейнера файлів також може трохи покращитись.
0xC0000022L

1
це має бути прийнятою відповіддю. qcow2 чудово працює як формат, але жоден кеш-пам'ять і нативність напевно не призводять до величезного прискорення.
Іоанн

9

Всім, хто встановив IDE і тепер бажає перейти на virtIO: Зручний спосіб зробити це - створити вторинний (не завантажуваний) диск virtIO, завантаживши VM - в цей момент Windows запитає драйвери virtIO, які він якось відмовляється встановлювати інше - і згодом перемикає завантажувальний розділ на virtIO.


3

Використовуючи всі ваші відповіді, я знайшов свій шлях у такому порядку:

Установка:

Конфігурація жорсткого диска, як сказав Сергій. Створюючи VM за допомогою virt-менеджера, не створюйте диск негайно (зніміть кнопку "включити зберігання ..."), натисніть "налаштувати конфігурацію перед встановленням" на наступному екрані та створіть жорсткий диск вручну відразу після цього, за допомогою цих параметрів :

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

Для мене установка проводиться менш ніж за 15 хв (а не за 27% прогресування після більш ніж 2 год із типовими параметрами)

Перша перезавантаження:

- 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
Будь ласка, не просто публікуйте посилання, узагальнюйте основні моменти безпосередньо у своїй відповіді та надайте посилання для подальшого ознайомлення. Дивіться мою редакцію щодо того мінімуму, який ми очікуємо у відповіді. Або дивіться відповідь Крейга, яка надає цьому посиланню пояснення та багато іншого. Прочитайте, як відповісти для отримання додаткової інформації.
Жил "ТАК - перестань бути злим"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.