LINUX.ORG.RU
ФорумAdmin

Libvirt (Qemu+KVM+Virt-manager) гостевые ОС люто юзают ресурсы гипервизора

 ,


1

3

В наличии HP ProLiant DL360 G5 в основном для тестов. Решил развернуть на нём виртуализацию на Debian 12. В общем гостевая ОСь жрёт практически все ресурсы сервера и жёстко тормозит, неважно будь то Win либо Lin. Вот конфиг Win8.1, дал ей 16 Гб ОЗУ и 8 ядер CPU. Тип HDD и сети - virtio. Вот скрин с самого гипервизора (сервера) когда в гостевой ОСи просто открываешь проводник. Что происходит? Это баги на свеженьком дистре дебиана…? На предыдущем релизе виртуализация крутилась отлично

★★

а таймеры для виндового гостя кто включать будет?

 <hyperv>
      <tlbflush state='on'/>
      <ipi state="on"/>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vpindex state='on'/>
      <runtime state='on'/>
      <synic state='on'/>
      <stimer state='on'/>
      <reset state='on'/>
    </hyperv>

Bloody ★★
()

неважно будь то Win либо Lin.

А вот тормоза на вм с линуксом уже странно. У меня на debian 12 такого нет

Попробуй начать с базовой проверки

virt-host-validate

может в uefi сервера виртуализацию зачем-то отключили

router ★★★★★
()
Ответ на: комментарий от router
root@tarh-work:~# virt-host-validate 
  QEMU: Checking for hardware virtualization                                 : PASS
  QEMU: Checking if device /dev/kvm exists                                   : PASS
  QEMU: Checking if device /dev/kvm is accessible                            : PASS
  QEMU: Checking if device /dev/vhost-net exists                             : PASS
  QEMU: Checking if device /dev/net/tun exists                               : PASS
  QEMU: Checking for cgroup 'cpu' controller support                         : PASS
  QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
  QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
  QEMU: Checking for cgroup 'memory' controller support                      : PASS
  QEMU: Checking for cgroup 'devices' controller support                     : PASS
  QEMU: Checking for cgroup 'blkio' controller support                       : PASS
  QEMU: Checking for device assignment IOMMU support                         : PASS
  QEMU: Checking if IOMMU is enabled by kernel                               : PASS
  QEMU: Checking for secure guest support                                    : WARN (AMD Secure Encrypted Virtualization appears to be disabled in firmware.)
   LXC: Checking for Linux >= 2.6.26                                         : PASS
   LXC: Checking for namespace ipc                                           : PASS
   LXC: Checking for namespace mnt                                           : PASS
   LXC: Checking for namespace pid                                           : PASS
   LXC: Checking for namespace uts                                           : PASS
   LXC: Checking for namespace net                                           : PASS
   LXC: Checking for namespace user                                          : PASS
   LXC: Checking for cgroup 'cpu' controller support                         : PASS
   LXC: Checking for cgroup 'cpuacct' controller support                     : PASS
   LXC: Checking for cgroup 'cpuset' controller support                      : PASS
   LXC: Checking for cgroup 'memory' controller support                      : PASS
   LXC: Checking for cgroup 'devices' controller support                     : PASS
   LXC: Checking for cgroup 'freezer' controller support                     : FAIL (Enable 'freezer' in kernel Kconfig file or mount/enable cgroup controller in your system)
   LXC: Checking for cgroup 'blkio' controller support                       : PASS
   LXC: Checking if device /sys/fs/fuse/connections exists                   : PASS
root@tarh-work:~# 

От тебя всегда что-то полезное, спасибо.

targitaj ★★★★★
()
Ответ на: комментарий от router

Благодарю за ссылку на ред-хатовский ман для дебиан по добавлению драйверов virtio, а также рекомендациям использовать их, но это всё уже сделано

Shprot ★★
() автор топика
Ответ на: комментарий от targitaj

То есть тот факт, что гостевая ОСь стоит Вас никак не смущает? Всё-таки необходимо проверить поддержку аппаратной виртуализации?

Специально для Вас даже поставил утилиту cpu-checker

root@hpkvm:~# /sbin/kvm-ok 
INFO: /dev/kvm exists
KVM acceleration can be used
root@hpkvm:~# 
Shprot ★★
() автор топика
Последнее исправление: Shprot (всего исправлений: 1)
Ответ на: комментарий от Shprot

Покажите выхлоп

grep . /sys/devices/system/cpu/vulnerabilities/*
и если что, добавьте к параметрам загрузки ядра хоста «mitigations=off», ну и «прекратите насиловать труп»

Bloody ★★
()
Последнее исправление: Bloody (всего исправлений: 1)
Ответ на: комментарий от Bloody
root@hpkvm:~# grep . /sys/devices/system/cpu/vulnerabilities/*
/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Mitigation: VMX disabled
/sys/devices/system/cpu/vulnerabilities/l1tf:Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT disabled
/sys/devices/system/cpu/vulnerabilities/mds:Vulnerable: Clear CPU buffers attempted, no microcode; SMT disabled
/sys/devices/system/cpu/vulnerabilities/meltdown:Mitigation: PTI
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data:Unknown: No mitigations
/sys/devices/system/cpu/vulnerabilities/retbleed:Not affected
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spectre_v1:Mitigation: usercopy/swapgs barriers and __user pointer sanitization
/sys/devices/system/cpu/vulnerabilities/spectre_v2:Mitigation: Retpolines, STIBP: disabled, RSB filling, PBRSB-eIBRS: Not affected
/sys/devices/system/cpu/vulnerabilities/srbds:Not affected
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort:Not affected
root@hpkvm:~# 

Shprot ★★
() автор топика
Ответ на: комментарий от Bloody

Ну во-первых в debian 11 всё работало штатно. Параметры ЦП я всегда ставил host-passthrough что в 12-ом дебе случилось? А во-вторых не совсем понимаю где поставить параметр mitigations=off не подскажите…? =)

Shprot ★★
() автор топика
Ответ на: комментарий от Shprot

в командную строку ядра при загрузке, делается это в /etc/default/grub, и не забудь update-grub. Потом ребут, и посмотреть, загрузилось ли с нужной строкой, можно с помощью cat /proc/cmdline

pekmop1024 ★★★★★
()
Последнее исправление: pekmop1024 (всего исправлений: 1)
Ответ на: комментарий от Shprot

А тупит скорее всего поэтому

/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Mitigation: VMX disabled

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

pekmop1024 ★★★★★
()
Последнее исправление: pekmop1024 (всего исправлений: 1)
Ответ на: комментарий от router

Совершенно верно…! Это говно Этот музейный экспонат больше для тестов. На нём «вчера» стоял deb11 + виртуализация (libvirt). На гостевых ОСях был openvpn и УТМ для реализации бухла, обе ОСи - debian. Всё работало отлично. Тут решил поюзать deb12, перекинул виртуалки на «боевой» сервер, а на этом экспериментирую ну и сопсна проблема изложена выше

Shprot ★★
() автор топика
Ответ на: комментарий от Shprot

Это уже костыли получаются. Такого же не должно быть…

Надо, Федя, надо…

Как правильно заметил pekmop1024, у тебя отключена поддержка виритуализации. Хотя все утилиты и уверяют в обратном, но «vmx disabled» говорит вполне однозначно. Видимо, слишком старый процессор, и других вариантов устранения уязвимости для него не нашлось. Отключай, иначе жизни не будет

/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Mitigation: VMX disabled

router ★★★★★
()
Ответ на: комментарий от Shprot

mitigations=off, потом в винде ещё что-то отключать, Это уже костыли получаются. Такого же не должно быть…

Это, батенька, не костыли. А уклонение от обязательного апгрейда, который форсят для корпораций (кому там консумеры нужны). Это пять лет как обязательно, если ты бабло лопатой не гребешь.

pekmop1024 ★★★★★
()
Ответ на: комментарий от router

Есть ещё вариант попробовать поставить пакет intel-microcode

Категорически рекомендую его наоборот удалить. Равно как и откатить биос на до-спектровую эпоху. Потому что:

  • в микрокоте сидят те же митигейшнсы;
  • в новых биосах сидит новый микрокот.
pekmop1024 ★★★★★
()
Ответ на: комментарий от pekmop1024

Смотрю у себя

/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Mitigation: VMX disabled

Процессор лет на семь посвежее, конечно — Intel(R) Core(TM) i3-4160

Не наблюдаю таких проблем. Только пускаю виртуалки без всяких libvirt, через sh файл с qemu-system-x86_64.

greenman ★★★★★
()
Ответ на: комментарий от pekmop1024

хотя знаешь, тема ещё не закрыта

https://serverfault.com/a/1132872/166198

vmx looks present and not disabled by bios. Vulnerability present, but now vmx is not in use, thus is just disabled. when some kvm is run and use vmx, situations changed:

так и есть. ноут, i5-8250, вм работают (и без тормозов)

itlb_multihit:KVM: Mitigation: Split huge pages

останавливаю ВМ

itlb_multihit:KVM: Mitigation: VMX disabled

ну т.е. попробовать mitigations=off все же стоит, но возможно не оно

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router

и ещё. попробуй не мигрировать ВМ обратно, а создать с нуля одну новую (будет актуальное virtual hardware и конфиг), причем именно linux. без других ВМ. тормоза останутся?

router ★★★★★
()
Ответ на: комментарий от Shprot

То есть тот факт, что гостевая ОСь стоит Вас никак не смущает?

для установки и работы гостя не требуется

KVM acceleration can be used

ага, именно что CAN BE, но НЕ used. «Может быть использовано» != «использовано».

targitaj ★★★★★
()
Ответ на: комментарий от pekmop1024
root@tarh-work:~# grep -v 'Not affected' /sys/devices/system/cpu/vulnerabilities/*
/sys/devices/system/cpu/vulnerabilities/retbleed:Mitigation: untrained return thunk; SMT enabled with STIBP protection
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Mitigation: Speculative Store Bypass disabled via prctl
/sys/devices/system/cpu/vulnerabilities/spectre_v1:Mitigation: usercopy/swapgs barriers and __user pointer sanitization
root@tarh-work:~# ll /sys/devices/system/cpu/vulnerabilities/
total 0
drwxr-xr-x  2 root root    0 июн 28 11:43 ./
drwxr-xr-x 57 root root    0 июн 26 14:56 ../
-r--r--r--  1 root root 4096 июн 28 11:43 itlb_multihit
-r--r--r--  1 root root 4096 июн 28 11:43 l1tf
-r--r--r--  1 root root 4096 июн 28 11:43 mds
-r--r--r--  1 root root 4096 июн 28 11:43 meltdown
-r--r--r--  1 root root 4096 июн 28 11:43 mmio_stale_data
-r--r--r--  1 root root 4096 июн 28 11:43 retbleed
-r--r--r--  1 root root 4096 июн 28 11:43 spec_store_bypass
-r--r--r--  1 root root 4096 июн 28 11:43 spectre_v1
-r--r--r--  1 root root 4096 июн 28 11:43 spectre_v2
-r--r--r--  1 root root 4096 июн 28 11:43 srbds
-r--r--r--  1 root root 4096 июн 28 11:43 tsx_async_abort
root@tarh-work:~# 
targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 1)

В общем снёс к херам 12-ый дебиан, поставил 11-ый, накатил виртуализацию и всё работает штатно, без неадекватных нагрузок на CPU. Возможно в 6-ом кернеле что-то добавили/убрали, возможно Intel(R) Xeon(R) CPU E5450 для него древний, не знаю.

P.S> Установка Deb11 на HP ProLiant DL360 G5 тоже без бубна не обошлась. При установке он сеть не нашёл, а после для работы сети необходимо поставить firmware-bnx2_20210315-3_all.deb только тогда сеть взлетела.

Shprot ★★
() автор топика
Последнее исправление: Shprot (всего исправлений: 1)
Ответ на: комментарий от Shprot

А почему тогда

<cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='4' threads='2'/>

Ведь согласно

/sys/devices/system/cpu/vulnerabilities/l1tf:Mitigation: PTE Inversion; VMX: conditional cache flushes, SMT disabled
/sys/devices/system/cpu/vulnerabilities/mds:Vulnerable: Clear CPU buffers attempted, no microcode; SMT disabled

Hyper-threading выключен.

Здесь пишут, что надо NUMA включать
https://pve.proxmox.com/wiki/Qemu/KVM_Virtual_Machines

(если хочется восемь ядер в гостя передать)

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)