Как улучшить производительность Windows при работе внутри KVM

14

Я использую Ubuntu 12.04 64-bit и 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 - Режим кэширования: нет (не по умолчанию!) - Режим ввода / вывода: собственный - + Шина диска: SATA сделал это. «Расширяющиеся файлы Windows» во время установки Win7 начали подсчитывать сразу после изменения, вместо того, чтобы зависать около @ 0% в течение нескольких часов. Интересно, почему отключение кэширования делает свое дело, так как я попробовал первую попытку с SATA NATIVE и Caching (Writeback), которые полностью отстой, а SATA NATIVE с кэшированием, установленным на NONE, решило это, очевидно ... Обычно я ожидал увеличения производительности от Кэширование с обратной записью?
Как называется это приложение?
thiagowfx
@ThiagoPerrotta Это virt-manager (менеджер виртуальных машин)
doug65536

Ответы:

11

Для начала у вас есть виртуальная машина, настроенная на эмуляцию шины IDE, что довольно медленно. Попробуйте изменить его на шину SATA.

Более того, установите драйверы virtio в Windows 7 и измените его на шину virtio.

ПРИМЕЧАНИЕ. Windows может жаловаться на смену оборудования под ней и может испытывать затруднения при поиске загрузочного диска после его перехода с IDE на SATA или Virtio.

Точно так же вы получите улучшенную производительность сети, если вы измените тип сетевой карты на virtio.

Какую версию KVM и ядра вы используете в Ubuntu? А какая версия же на Debian?

Стоит проверить еще одну вещь: ваш коллега использует образ диска для виртуальной машины, такой же, как вы, или они используют раздел чистого диска, том LVM или аналогичный? образы дисков очень медленные по сравнению с разделами или LVM.

саз
источник
Можете ли вы описать, как установить драйверы VirtIO?
Гай Фоукс
не совсем, они драйверы для Windows. не моя область знаний. Я полагаю, вы устанавливаете их обычным образом, как и драйверы Windows. Я устанавливал их несколько раз на некоторых виртуальных машинах Windows год или два назад. IIRC это было что-то неуклюжее, например, смонтировать образ компакт-диска и отыскать программу установки в одном из подкаталогов и щелкнуть по нему.
Cas
Мне никогда не удавалось добавить драйверы VirtIO в перенесенный существующий образ Windows. Переопределение шины Disk для VirtIO и Windows не начнется; и попробуйте установить драйверы VirtIO без правильного Diskbus, который я хотел бы получить.
Тодд Партридж 'Gen2ly'
На самом деле вы можете сделать это serverfault.com/questions/452854/…
Darokthar
1
да, короче говоря, вы должны добавить второй диск к виртуальной машине и установить драйверы virtio для этого. после этого вы можете переключить исходный диск на использование virtio и, при желании, отсоединить / удалить второй диск.
Cas
13

У меня также была невероятно низкая производительность на моем виртуальном жестком диске.
Следующая настройка на новом HDD исправила все:

  • Формат хранения: сырой
  • Режим кэширования: нет (не по умолчанию!)
  • Режим ввода / вывода: родной
Сергей
источник
Отличное замечание о формате хранения. Использование необработанного раздела вместо файлового контейнера также может немного улучшить.
0xC0000022L
1
это должен быть принятый ответ. Хотя qcow2 отлично работает как формат, но отсутствие кеша и нативного кода определенно приводит к огромному увеличению.
Джон
9

Любой, кто установил в IDE и теперь хочет перейти на virtIO: Удобный способ сделать это - создать дополнительный (не загружаемый) диск virtIO, загрузить виртуальную машину - в этот момент Windows запросит драйверы virtIO, которые он почему-то отказывается устанавливать иначе - и впоследствии переключить загрузочный раздел на virtIO.

hardyharzen
источник
3

Используя все ваши ответы, я нашел свой путь в следующем порядке:

Установка :

Конфигурация жесткого диска, как сказал Сергей. При создании виртуальной машины с помощью virt-manager не создавайте диск немедленно (снимите флажок «включить хранилище ...»), нажмите «настроить конфигурацию перед установкой» на следующем экране и сразу после этого создайте жесткий диск вручную с этими параметрами. :

- 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, перезагрузите, вот и все!

'радость!

tisc0
источник
1

Вы должны установить драйверы VirtIO под Windows. Вы можете скачать драйверы, созданные в Fedora, или создать свои собственные из исходников, см. Информацию в документации KVM .

сюгэндо
источник
2
Пожалуйста, не просто публикуйте ссылку, суммируйте основные моменты прямо в своем ответе и предоставьте ссылку для дальнейшего использования. Смотрите мое редактирование для того минимума, который мы ожидаем в ответе. Или посмотрите ответ Крейга, который дает эту ссылку с объяснением и многое другое. Читайте, как ответить для получения дополнительной информации.
Жиль "ТАК - перестань быть злым"