Proxmox machine i440fx q35 что это
Перейти к содержимому

Proxmox machine i440fx q35 что это

  • автор:

i440fx vs q35 on qemu-kvm

Windows 2008 R2 x64 в простое на чипсете i440fx потребляет 10% ядра ноды, при том что на q35 потребление 3-4%. В обоих случаях по мнению инстанса потребление CPU = 0.

Под нагрузкой на i440fx стабильно на 5-7% загрузка выше. Такое ощущение, что он на эти 5-7% молотит какой-то «пустой цикл». Проблема только с Windows 2008. 2012 и 2016 — ведут себя одинаково скромно на обоих чипсетах.

Использовал бы q35, но Windows 2008 при первой загрузке на новом инстансе падает в BSOD в двух случаях из десяти. 2012 и 2016 на q35 тоже падают, но реже.

Драйверы стоят virtio-win-0.1.141 stable

q35 устанавливается через дописывание в /etc/nova/nova.conf

hw_machine_type = x86_64=q35

Нода Centos 7 Openstack Rocky QEMU/KVM

Сейчас выложу конфиги.

UPD: Собственно вопрос: Что изменить чтобы не жрало лишнего CPU на i440fx? Что изменить чтобы не падало в BSOD на q35?

Deleted
01.05.19 19:11:05 MSK

Ты забыл задать вопрос.

King_Carlo ★★★★★
( 01.05.19 19:18:47 MSK )

$ virsh dumpxml instance-00000fc9 instance-00000fc9 3270ec07-dfbe-41b8-b47a-be27863c3af6   test-i440fx-win-2008 2019-05-01 07:23:37 8192 120 0 0 4  admin admin    8388608 8388608 4 4096 1000000 500000  /machine   RDO OpenStack Compute 18.1.0-1.el7 2bf0ad48-7c83-49b7-826d-b0c4d30fa7ed 3270ec07-dfbe-45b8-b47a-be27863c3af6 Virtual Machine   hvm           Westmere-IBRS Intel                     destroy restart destroy /usr/libexec/qemu-kvm          3000 1000                                                          +107:+107  

Deleted
( 01.05.19 19:45:12 MSK )

$ virsh dumpxml instance-00000fc5 instance-00000fc5 bc344977-1d76-4090-b1c0-0bf36c094c46 /// Слишком большое сообщение /// 8388608 8388608 4 4096 1000000 500000  /machine   RDO OpenStack Compute 18.1.0-1.el7 2bf0ad48-7c83-49b7-826d-b0c4d30fa7ed bc344977-1d76-4090-bcc0-0bf36c094c46 Virtual Machine   hvm           Westmere-IBRS Intel                     destroy restart destroy /usr/libexec/qemu-kvm          3000 1000                                                                                           +107:+107  

Deleted
( 01.05.19 19:46:44 MSK )

Не по теме, но вот так предлагают выбирать чипсет товарищи из unraid

The Machine type presented to your VM can be toggled between >QEMU’s i440fx or Q35 chipsets

For Windows-based VMs, i440fx is the default setting and should >only be changed if you are having difficulty passing through a >PCI-based graphics card (this may prompt Windows to reactivate)

For Linux-based VMs, Q35 is the default setting and should not be >changed if passing through a GPU

Deleted
( 01.05.19 20:15:25 MSK )

Использовал бы q35, но Windows 2008 при первой загрузке на новом инстансе падает в BSOD в двух случаях из десяти. 2012 и 2016 на q35 тоже падают, но реже.

У меня и 440fx и q35 работают стабильно, оставшиеся гостевые винды (2008r2) отлично работают, не падают.

Deleted
( 02.05.19 18:32:19 MSK )

Надо включить фичи Hyper-V, например как это делает virt-manager.

Как-то тут мало всего:

vvvvvvvv
( 02.05.19 23:24:50 MSK )
Ответ на: комментарий от vvvvvvvv 02.05.19 23:24:50 MSK

Еще надо часики поправить, а то убегут или отстанут:

Так же рекомендую

(если Haswell, надо отключить пару инструкций)
Отключение Memory Ballooning:
pekmop1024 ★★★★★
( 03.05.19 12:48:46 MSK )
Ответ на: комментарий от pekmop1024 03.05.19 12:48:46 MSK

И обязательное отключение SpeedStep на хосте.

pekmop1024 ★★★★★
( 03.05.19 12:49:18 MSK )

Пытаюсь воссоздать ситуацию на настольном ПК. Устанавливаю QEMU/KVM. Создаю виртуальную машину.

virt-install --connect qemu:///system --virt-type kvm \ --name win2008 --vcpu 2 \ --ram 2048 --memballoon model=virtio \ --controller=scsi,model=virtio-scsi \ --boot hd,menu=on \ --disk device=disk,bus=scsi,discard=unmap,cache=writeback,size=16,format=raw,path=/var/lib/libvirt/images/win2008.raw \ --network network=default,model=virtio \ --graphics vnc --noautoconsole \ --video qxl --channel spicevmc \ --os-type=windows --os-variant=win2k8r2 \ --machine=pc-q35-2.11 --arch=x86_64

Вопрос по параметру «—machine»

Где взять список этих machine type? От чего зависит доступность того или иного machine type?

На ноде используются следующие machine type: pc-q35-rhel7.6.0 и pc-i440fx-rhel7.6.0

Если я попробую использовать их на настольном ПК то virt-install выругается следующим образом:

ERROR Хост не поддерживает домены kvm with machine 'pc-q35-rhel7.6.0' для виртуализации типа «hvm» (архитектура «x86_64») ERROR Хост не поддерживает домены kvm with machine 'pc-i440fx-rhel7.6.0' для виртуализации типа «hvm» (архитектура «x86_64»)

Оптимизация с помощью виртуализации. Организуем несколько рабочих мест из одного десктопа. Часть 3

Тестировалась производительность центрального процессора, производительность дисковой подсистемы и основных «пробрасываемых» устройств: видеоадаптера и USB-контроллеров в различных виртуальных окружениях.

Каждый тест производился три раза, в качестве результата записывалось среднее арифметическое значение проведенных тестов. Для определения погрешности измерений использовался метод Корнфельда, определяющий погрешность, какзначение половины разности между максимальным и минимальным результатами измерений. Для наглядности использована величина относительной погрешности (отношение погрешности измерения к величине среднего результата измерений) в процентах.

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

Измерения производительности одних и тех же подсистем, сделанные разным ПО, усреднялись. Также усреднялись погрешности результатов измерений (что также упрощено, но не внесло значимых искажений в результаты).

В качестве ОС для тестирования использовались 64-битные версии Windows 7 Professional и Windows 10 Professional.

Исходя из выбора операционных систем и поддерживаемого аппаратного обеспечения гипервизорами получилась следующие комбинации для тестирования:

ОС, установленные непосредственно на «железо»:

  • Тесты видеоподсистемы
  • Тесты производительности процессора
  • Тесты дисковой подсистемы
  • Тесты производительности USB-контроллеров
  • Тесты выполнены для Windows 7 x64 и Windows 10 x64

ОС, установленные в окружении Xen:

  • Тесты видеоподсистемы (в режиме «проброса» PCI-устройства)
  • Тесты производительности процессора
  • Тесты дисковой подсистемы (форматы HDD: файловый Raw, файловый qcow2, LVM raw)
  • Тесты производительности USB-контроллеров (в режиме «проброса» PCI-устройства)
  • Тесты выполнены для Windows 7 x64 и Windows 10 x64

ОС, установленные в окружении Proxmox VE (QEMU/KVM):

  • Тесты видеоподсистемы (в режиме «проброса» PCI-устройства);
  • Тесты производительности процессора;
  • Тесты дисковой подсистемы (форматы HDD: SCSI файловый Raw, SCSI файловый qcow2, SCSI LVM raw, Virtio файловый Raw, Virtio файловый qcow2, Virtio LVM raw)
  • Тесты производительности USB-контроллеров (в режиме «проброса» PCI-устройства)
  • Тесты выполнены для Windows 7 x64 и Windows 10 x64.

Проект Xen и проект KVM используют для эмуляции аппаратной платформы виртуальных машин код из проекта QEMU.

Проект Xen при этом придерживается более консервативного подхода и использует только стабильный проверенный код, KVM придерживается более прогрессивного подхода и использует наряду с проверенными, также и современные наработки QEMU.

По этой причине (вполне возможно, я ошибаюсь и команда Xen просто не успевает идти в ногу со временем) в качестве аппаратной платформы для виртуальных машин в Xen используется эмуляция чипсета Intel i440FX (чипсет безподдержки шины PCIe и USB3), а в проекте KVM – Intel i440FX и Intel Q35 [3] (более современный чипсет с поддержкой шины PCIe и USB3).

Произведенные тесты не претендуют высокую точность, но могут дать общее представление о потерях на виртуализацию процессорного времени и виртуализацию ввода/вывода (графические тесты, тесты дисковой системы и скорости «проброшенных» USB-контроллеров) при использовании разных технологий виртуализации и разных эмулируемых чипсетов (i440fx и q35).

Статью целиком читайте в журнале «Системный администратор», №7-8 за 2017 г. на страницах 24-31.

PDF-версию данного номера можно приобрести в нашем магазине.

  1. Семенов А. Оптимизация с помощью виртуализации. Организуем несколько рабочих мест из одного десктопа. // «Системный администратор», № 3, 2017 г. – с. 22-28 (http://samag.ru/archive/article/3385).
  2. Семенов А. Оптимизация с помощью виртуализации. Организуем несколько рабочих мест из одного десктопа. Часть 2. // «Системный администратор», № 4, 2017 г. – с. 24-29 (http://samag.ru/archive/article/3404).
  3. QEMU Q35 chipset – http://wiki.qemu.org/Features/Q35.
  4. Файл с подробными результатами тестов – http://charoday.ru/samag-xen-kvm-tests-results.
  5. Информация об ошибке «проброса» видеокарты PVE – https://forum.proxmox.com/threads/vga-passthrough-error-device-does-not-support-requested-feature-x-vga.35727.
  6. Xen Windows PV Drivers – https://www.xenproject.org/developers/teams/windows-pv-drivers.html.

Как поменять разрешение экрана в Windows 10 QEMU?

Как менять на нотебучное и вообще на любое другое не знаю. Но на полный экран я запускаю так qemu-system-x86_64 -enable-kvm -machine q35 -cpu host -device intel-iommu -cdrom /home/sergey/Downloads/virtio-win-0.1.215.iso -drive file=»win10.qcow2″,if=virtio -m 8G -vga qxl -usb -device usb-tablet -display gtk,zoom-to-fit=on -full-screen

19 мая 2022 в 0:29

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Поставь virtual-manager, прицепи образ диска и нет проблем с разрешением и проброс усб мышкой.

А под капотом тот же qemu, с такими параметрами

qemu-system-x86_64 -enable-kvm -name guest=win7test,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-1-win7test/master-key.aes -machine pc-i440fx-2.8,accel=kvm,usb=off,vmport=off,dump-guest-core=off -cpu Haswell-noTSX-IBRS,md-clear=on,ssbd=on,spec-ctrl=on,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff -m 16000 -realtime mlock=off -smp 8,sockets=8,cores=1,threads=1 -uuid 924c5309-9aa9-48d9-8192-44818a256ff1 -no-user-config -nodefaults -chardev socket,id=charmonitor,fd=26,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive file=/data/VM/win7.qcow2,format=qcow2,if=none,id=drive-ide0-0-0 -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,id=drive-ide0-0-1,readonly=on -device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -netdev tap,fd=28,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=52:54:00:ac:e0:77,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charserial1,fd=29,server,nowait -device isa-serial,chardev=charserial1,id=serial1 -add-fd set=3,fd=31 -chardev file,id=charserial2,path=/dev/fdset/3,append=on -device isa-serial,chardev=charserial2,id=serial2 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0,bus=usb.0,port=1 -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=2 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=3 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on 

Касательно видео тут ключевое это выделение видеопамяти:

-spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on \ -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x2 

Картинку можно смотреть spice клиентом или можно заменить на vnc. А отрисовку напрямую в иксы опцией -vga не пробовал даже.

введите сюда описание изображения

Это на базовом драйвере Microsoft. На драйвере Redhat изображение не мерцает при прокрутке. А если еще установить Windows guest tools — spice-guest-tools, то разрешение экрана подстраивается под размер окна в котором его смотрим:

введите сюда описание изображения

Если работать в голом qemu, то тут нужно добавить ещё канал spicevmc

[SOLVED] q35 vs i440fx

You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an alternative browser.

oah433
Member

Apr 8, 2021 31 1 8 39

Hi
I am trying to understand when should I choose the machine-type to «Q35 vs i440fx», I understand that Q35 supports PCIe so I can do GPU passthrough but what about the i440fx, is the Q35 is that superior why do we still have it?
For my setup where I have bunch of VMs running apache + MySQL on some and Nginx +MongoDB on the others which machine type should I use and does it really matter?
Thx

dcsapak
Proxmox Staff Member

Staff member
Feb 1, 2016 9,440 1,267 174 35 Vienna

i’d say for «most» vms it does not really matter, since nearly all of the functionality of the chipset/platform is virtual anyway. if you need some features from a newer platform (like pcie) i’d choose q35, but
else there is not much reason to choose it over i440fx

Toggle signature

Best regards,
Dominik

Do you already have a Commercial Support Subscription? — If not, Buy now and read the documentation

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *