QEMU/KVM HB-RF-USB hohe CPU Last

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

hmpatman
Beiträge: 33
Registriert: 13.04.2016, 19:06
Hat sich bedankt: 2 Mal

Re: QEMU/KVM HB-RF-USB hohe CPU Last

Beitrag von hmpatman » 20.04.2020, 13:20

Danke euch allen einmal für das Feedback! Gut zu hören, dass ich keinen groben Unsinn gemacht habe. Den N4100 habe ich erst seit Kurzem, weil im Zotac CI329 drinnen und der ganz neu. Ist für mich einfach die passende Größe 'Server'. Passiv, aber nicht unbedingt potent. Aber bei den vielen RPis... 8)
Btw. der Screenshot war vom i7-4770 und mit so einer Last kann man normalerweise viel mehr machen...

Weiß jemand wieviele Daten so mit dem RPI-RF-MOD ausgetauscht werden? Ich hab noch einen UART Adapter, der fällt nicht auf, allerdings geht da auch fast nix drüber. Mich wundert auch, dass bereits ohne HM (LED gelb) und nur mit Treibern die Last schon auf 25% geht.

Werde jedenfalls heute mal PCI pass-through für den gesamten USB probieren um das Problem einzugrenzen. Als nächstes schaue ich mir mal das polling an, danke @deimos für den Tipp, vielleicht kann ich das ja wo umstellen.

Liebe Grüße!

hmpatman
Beiträge: 33
Registriert: 13.04.2016, 19:06
Hat sich bedankt: 2 Mal

Re: QEMU/KVM HB-RF-USB hohe CPU Last

Beitrag von hmpatman » 20.04.2020, 19:38

Hallo!

So, ich hab mich noch ein wenig herum gespielt, aber im wesentlichen liegt es an der USB Emulation. Die folgenden Prozentwerte sind nur als relative Größenordnungen (ist natürlich je nach Host unterschiedlich) zu verstehen:
Basis ~1% Last (am Host)
USB passthrough, HB-RF-USB angesteckt, LED gelb: +12% Last (am Host)
USB passthrough, HM Dienste gestartet, LED blau: +60% Last (am Host)
PCI passthrough (IOMMU), HM Dienste gestartet, LED blau: +40% Last (am Host)

Wenn ich einen Arduino als Serial-Loopback bei 115200 Baud einsetze, dann steigt die Last auf ca. 35%. Leider ist PCI passthrough nicht so optimal, weil dadurch alle USB ports an der VM hängen (zumindest bei mir) was echt mühsam ist wenn man kein Keyboard am Host mehr hat. :shock:

Sieht so aus, als wäre da nix zu machen, außer ich finde noch was, wie man bei QEmu die USB Emulation beschleunigen kann.

Jumako
Beiträge: 8
Registriert: 20.04.2020, 07:16
Hat sich bedankt: 1 Mal

Re: QEMU/KVM HB-RF-USB hohe CPU Last

Beitrag von Jumako » 21.04.2020, 06:36

Hallo zusammen,

mir hat es auch keine Ruhe gelassen, musste ebenfalls weiter ausprobieren.

Ich nutze diese beiden Umgebungen:

Produktives System: Intel NUC mit i3-8109U / 16 GB / 512 GB M.2 SSD, Debian Buster, Kernel aus Backports
Testsystem: Intel-CPU i3-9100F / ASRock H370M-ITX/ac mit 16 GB RAM, M.2 SSD mit 512GB, Rackgehäuse mit 250W Netzteil, Proxmox

Habe heute Morgen etwas mit Proxmox auf dem Testsystem gespielt, ganz frische Proxmox - Installation (Version 6.1-8), verwendet wurde die gestern veröffentliche RaspberryMatic 3.51.6.20200420, es sind ca. 30 HM/HMIP - Geräte verbunden:

CPU-Last auf dem Host zwischen 17% - 19%

Neben dem o.g. USB-Stick greift RaspberryMatic zusätzlich via Netzwerk auf ein "HM Configuration Tool LAN" zu (das runde Gerät).

Die Last innerhalb der virtuellen Maschine ist sehr gering (um die 1%), die Last auf dem Host kommt damit hauptsächlich aus dem Durchreichen des USB-Devices (so wie es in diesem Thread schon beschrieben wurde).

Zusätzlich habe ich den Strombedarf des Testervers gemessen:

Server ohne virtuelle Maschine, ohne USB-Stick, idle: ca. 15 Watt
Server mit RaspberryMatic, leer (ohne USB-Stick): ca. 18 Watt (zyklisch immer wieder kurz auf 22 Watt)
Server mit RaspberryMatic, alle Geräte (mit USB-Stick): ca. 22 Watt (zyklisch immer wieder kurz auf 25 Watt)

Auf dem produktiven System mit Qemu/KVM/Virt-Manager lag die CPU-Last bei ca. 35-45% (nur für Qemu/KVM).

Aus meiner Sicht eine erfreuliche Verbesserung, daher bleibe ich zunächst bei Proxmox.

Nächste Schritte (wenn ich die Zeit finde):
Alle anderen Services des o.g. produktiven NUC in eine zusätzliche virtuelle Maschine migrieren (Testsystem), dann den NUC neu mit Proxmox aufsetzen und die virtuellen Maschinen von Test nach Produktion schieben.

Viele Grüße
Jürgen

deimos
Beiträge: 3532
Registriert: 20.06.2017, 10:38
Wohnort: Leimersheim
Hat sich bedankt: 20 Mal
Danksagung erhalten: 183 Mal
Kontaktdaten:

Re: QEMU/KVM HB-RF-USB hohe CPU Last

Beitrag von deimos » 21.04.2020, 09:15

Hi,

mit was man die Last natürlich deutlich verringern kann, ist die Verwendung einer Paravirtualisierung statt einer Vollvirtualisierung. Bei debmatic habe ich es eingebaut, dass man bei Proxmox nicht nur VMs nutzen kann, sondern auch (schlanke) Container und den eigentlichen USB Treiber dann im Host betreibt, so dass der CPU Verbrauch für das USB Durchreichen entfällt. Hat halt den Nachteil, dass die Treiber im Host laufen und nicht komplett abgeschottet in der VM.

Viele Grüße
Alex

Jumako
Beiträge: 8
Registriert: 20.04.2020, 07:16
Hat sich bedankt: 1 Mal

Re: QEMU/KVM HB-RF-USB hohe CPU Last

Beitrag von Jumako » 21.04.2020, 10:40

@Alex:
Ja, debmatic steht bei mir auch auf der Liste (leider erst seit ein paar Tagen, eben wg. der CPU-Last bei der USB-Durchreichung).
Würde ich gleich mit Deiner Platine für das HB-UF-USB verwenden wollen und den USB-Stick und das externe runde Funkmodul in Rente schicken. Nur, ich kann extrem schlecht löten, alleine der einfache Bausatz für das RPI-RF-MOD ist schlicht eine Katastrophe bei mir geworden (die beiden Lötpunkte sind jetzt eher eine Art "Zinnlager"). Hatte mir vor ein paar Tagen eine neue Ausrüstung bestellt (besserer Lötkolben und Zubehör), vielleicht hilft es.

Der Stress mit der CPU-Last für den USB-Stick hat mich zumindest schon mal an Proxmox gebracht, gefällt mir sehr gut, Proxmox will ich auf jeden Fall weiter nutzen.

Da viele meiner Sensoren in FHEM terminieren, wäre die Kombination mit debmatic vermutlich eine gute Wahl. Anderseits scheint mir RaspberryMatic in Kombination mit einer gekapselten virtuellen Maschine die einfacherer Lösung zu sein (nur "Bauchgefühl"). Wissen werde ich es, nachdem ich debmatic ausprobiert habe.

Auf meinem Testserver läuft RaspberryMatic jetzt seit ein paar Stunden ohne jede Auffälligkeit weiterhin bei ca. 17-19% CPU-Last (auf dem Proxmox-Host gemessen), nicht wirklich schick, allerdings deutlich besser im Vergleich zum bisherigen Setup.

hmpatman
Beiträge: 33
Registriert: 13.04.2016, 19:06
Hat sich bedankt: 2 Mal

Re: QEMU/KVM HB-RF-USB hohe CPU Last

Beitrag von hmpatman » 21.04.2020, 11:21

Hi Jürgen!
Jumako hat geschrieben:
21.04.2020, 06:36
Aus meiner Sicht eine erfreuliche Verbesserung, daher bleibe ich zunächst bei Proxmox.
Ich bin nicht ganz mitgekommen, worin liegt deine Verbesserung? Im Vergleich zu was? Kannst du das an einer bestimmten Veränderung festmachen? Aus meiner Sicht ist Proxmox (bis auf die Konfigurationsoberfläche) ident zu meinem System. Ausnahme ist natürlich der Vorschlag von Alex LXC oder Ähnliches zu verwenden, damit die USB Übersetzung wegbleibt.

Bin halt nicht ganz happy, wenn die CCU Virtualisierung mehr CPU braucht als meine anderen VMs (darunter iobroker, homeassistant, nextcloud) in Summe, aber es sieht nicht so aus, als könnte ich alles haben. 8)

Jumako
Beiträge: 8
Registriert: 20.04.2020, 07:16
Hat sich bedankt: 1 Mal

Re: QEMU/KVM HB-RF-USB hohe CPU Last

Beitrag von Jumako » 21.04.2020, 12:43

@hmpatman:
Die Verbesserung bezieht sich auf den Vergleich produktives System (Qemu/KVM/Virt-Manager mit Debian Buster) mit 35-45% CPU-Last (nur für Qemu/KVM) und meinem Testsystem (mit Proxmox) mit 17% - 19% CPU-Last.

Die Systeme sind bzgl. der Hardware "ähnlich" (was die Leistungsdaten angeht), beide haben einen i3, 16 GB RAM und eine M.2 512GB SSD.

Dies ist aus meiner Sicht dann in der Tat eine erfreuliche Verbesserung (45% auf 19%), aber noch weit vom idealen Zustand entfernt. Ich gehe nach all meinen Recherchen und diesem Thread davon aus, dass viel mehr an Verbesserung erst mal nicht machbar ist (sofern ich bei einer vollständigen Virtualisierung bleibe). ich hatte zwischenzeitlich auch den VMWare Player ausprobiert (ebenfalls mit hoher CPU-Last).

Warum Proxmox weniger Last erzeugt, kann ich nicht erklären. Evtl. liegt es am verwendeten Kernel (scheint nicht der Standard-Debian-Kernel zu sein) oder an der verwendeten Firmware (scheinbar auch eigene Files)?

Mit den 19% komme ich erst mal zurecht (probiere aber noch debmatic aus), stelle jetzt zuerst mein produktives System auf Proxmox um.

hmpatman
Beiträge: 33
Registriert: 13.04.2016, 19:06
Hat sich bedankt: 2 Mal

Re: QEMU/KVM HB-RF-USB hohe CPU Last

Beitrag von hmpatman » 21.04.2020, 13:55

Jumako hat geschrieben:
21.04.2020, 12:43
Warum Proxmox weniger Last erzeugt, kann ich nicht erklären. Evtl. liegt es am verwendeten Kernel (scheint nicht der Standard-Debian-Kernel zu sein) oder an der verwendeten Firmware (scheinbar auch eigene Files)?
Ok, das krazt jetzt an meinem Ehrgeiz, weil ich ursprünglich Proxmox hatte, dann beschlossen habe, ich brauche die 300MB RAM für die Oberfläche nicht und das direkt mit KVM gemacht habe. Muss rausfinden, wo der Unterschied ist... :roll:

dodi
Beiträge: 136
Registriert: 26.12.2016, 11:59
Hat sich bedankt: 2 Mal

Re: QEMU/KVM HB-RF-USB hohe CPU Last

Beitrag von dodi » 24.04.2020, 12:48

Hallo zusammen,
nachdem ich seit ein paar Wochen RaspMatic und ioBroker auf Proxmox als VM,
bin ich gestern genau über das gleich Problem gestolpert.
Ich betreibe das Ganze übrigens auf einer Zotac ZBox Ci327.
Bei mir ist es ebenfalls so, dass die RaspMatic VM mit ungefähr 25% Systemlast aus Sicht des Hosts läuft,
was mir ehrlich gesagt ein bisschen viel vorkam, da die CPU sich aud Sicht der Anwendung eher langweilt.
zum Vergleich: der ioBroker benötigt weniger als 10% Systemlast.
Besteht die Chance, dass sich da in Zukunft was dran ändern kann, bzw. gibt es Maßnahmen, welche man jetzt schon ergreifen kann?

Grüße
Sascha

hmpatman
Beiträge: 33
Registriert: 13.04.2016, 19:06
Hat sich bedankt: 2 Mal

Re: QEMU/KVM HB-RF-USB hohe CPU Last

Beitrag von hmpatman » 24.04.2020, 21:05

Hi!
dodi hat geschrieben:
24.04.2020, 12:48
nachdem ich seit ein paar Wochen RaspMatic und ioBroker auf Proxmox als VM,
bin ich gestern genau über das gleich Problem gestolpert.
Ich betreibe das Ganze übrigens auf einer Zotac ZBox Ci327.
Bei mir ist es ebenfalls so, dass die RaspMatic VM mit ungefähr 25% Systemlast aus Sicht des Hosts läuft,
Interessant zu hören, ich hab mich in meinem ersten Posting vertan und zu viel Last angegeben (es sind nicht 60% sondern "nur" 40%), dagegen sind die 25% unter Proxmox nicht schlecht. Habe leider immer noch nicht herausgefunden, was bei Proxmox anders ist. Hab mittlerweile den Kernel von Proxmox im Einsatz, kein Unterschied. Patches für Qemu habe ich keine relevanten gefunden, aber irgendwas muss es sein ...
dodi hat geschrieben:
24.04.2020, 12:48
Besteht die Chance, dass sich da in Zukunft was dran ändern kann, bzw. gibt es Maßnahmen, welche man jetzt schon ergreifen kann?
Die letzten Tage habe ich sehr viel probiert und recherchiert, aber USB pass-through ist leider nicht sehr gängig, vor allem nicht für Geräte mit viel Datenverkehr. Falls du einen USB Kontroller hast, an dem sonst nichts hängt, kannst du PCI(e) pass-through des ganze USB Bus machen, das ist deutlich effizienter, bedingt aber, dass dann alle USB Geräte des Bus in einer VM hängen.

Sonst leider noch keine hilfreichen Erkenntnisse bisher. Ich suche weiter, habe aber mittlerweile wenig Hoffnung.

Viele Grüße,
Patrick

Antworten

Zurück zu „RaspberryMatic“