kvm/qemu und CPU-Auslastung beim Drucken via Netzwerk

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Erdnussbutter
Beiträge: 3
Registriert: 17.07.2020 01:32:29

kvm/qemu und CPU-Auslastung beim Drucken via Netzwerk

Beitrag von Erdnussbutter » 17.07.2020 02:16:32

Guten Abend,

ich habe ein Problem mit einem neu gekauften Multifunktionsgerät (Canon Maxify MB5150) an meinem Linux-PC und hoffe, dass mir hier jemand helfen kann. Ich nutze den Drucker nicht direkt unter Linux (Debian Buster), sondern als Netzwerkdrucker unter Windows 10 Home via kvm/qemu. Drucker und PC sind beide per LAN an einem Speedport W724V angeschlossen.

Nach der Treiber-Installation kann ich mit dem Canon Scan-Utility unter Windows ganz normal und in hoher Geschwindigkeit Dokumente einscannen. Wenn ich jedoch etwas drucke, wird Windows extrem träge und ich sehe im Task Manager, dass die Druck-Warteschlange die CPU dauerhaft auslastet. Der Druckauftrag wird in der Drucker-Warteschlage angezeigt (die Spalte „Größe“ wächst zunächst, ändert sich ab „6/6 MB“ jedoch nicht mehr) und auf dem Drucker-Display erscheint „Daten werden verarbeitet…“. Eine Steuerung des Systems ist dann extrem schwierig, da alle Ein- und Ausgaben stark verzögert und nur in kurzen Zeitfenstern verarbeitet werden. Es gibt keine unmittelbare Fehlermeldung, sondern das System „hängt“ einfach nur. Ich habe noch einen alten HP OfficeJet, der ebenfalls über LAN angeschlossen ist und eigentlich durch den neuen Canon ersetzt werden sollte. Mit dem alten Drucker kann ich am selben PC mit Windows ganz normal über Netzwerk drucken.

Um den Fehler einzugrenzen, habe ich auf einem Laptop testweise Windows 10 Home installiert, alle Updates durchgeführt und den Drucker auch hier als Netzwerk-Drucker installiert. Auf dem Laptop funktioniert das Drucken via LAN ganz normal.
Wenn ich den Drucker über einen USB-Ethernet-Adapter am PC anschließe, in virt-manager die USB-Einheit durchreiche und in Windows das OnBoard-LAN deaktiviere, treten erstaunlicherweise die gleichen Symptome auf wie über OnBoard-LAN.
Der Laptop druckt mit dem selben USB-Ethernet-Adapter übrigens einwandfrei.

Schließe ich den Netzwerk-Drucker jedoch über USB am PC an und reiche die entsprechende USB-Einheit an Windows durch, kann ich auf dem PC ganz normal drucken.
Das Problem scheint also mit der Virtualisierung speziell in Kombination mit dem Drucken über Netzwerk zusammenzuhängen.

kvm/qemu/virt-manager sind aus den main Packages via apt installiert worden (z.B. 3.1+dfsg-8+deb10u5 bei qemu-kvm). Das OnBoard-LAN arbeitet als virtio im bridge Mode. Den bridge Mode verwende ich neben dem LAN-Zugriff für den Zugriff auf eine Ordner-Freigabe auf dem unter debian installierten Samba-Server. Ich kann gerne genauere Infos zu meiner Konfiguration geben, aber momentan bin ich mir nicht mal sicher, ob z.B. die Netzwerk-Konfiguration wichtig ist, wo es doch mit dem direkt durchgereichten USB-Adapter in der virtuellen Maschine nicht funktioniert?

Ich weiß nicht ob es da einen Zusammenhang gibt, aber die virtuelle Maschine kommt mir unabhängig vom Druck-Problem viel zu langsam vor. Die CPU Last geht laut Windows TaskManager auch ohne Drucker-Warteschlange häufig kurzzeitig ins Limit (z.B. wenn ich Firefox starte), aber der PC ist dann noch benutzbar. Der PC ist ganz neu mit Ryzen 7 (8 Kerne/16 Threads/4.5 GHz), PCIe x4 SSD und 32 GB RAM. Nativ fährt Windows mit so einer Hardware normalerweise in wenigen Sekunden hoch, aber die VM benötigt insgesamt bestimmt 1,5 Minuten zum Hochfahren. Der VM sind bereits 4 logische Rechner-CPUs und 8 GB RAM zugewiesen. Im Gast steht „Virtuelle Prozessoren: 1“ im Taskmanager (AMD EPYC Prozessor). Der Datenträger ist als qcow2 mit virtio eingerichtet, die Grafikkarte mit QXL und lscpu zeigt auf dem Host in der Ausgabe „Virtualization: AMD-V“.

Kann sich jemand auf diese Symptome einen Reim machen?

Herzlichen Dank und viele Grüße
Erdnussbutter

debianoli
Beiträge: 4073
Registriert: 07.11.2007 13:58:49
Lizenz eigener Beiträge: MIT Lizenz

Re: kvm/qemu und CPU-Auslastung beim Drucken via Netzwerk

Beitrag von debianoli » 17.07.2020 06:29:09

Du hast auf einem Windows PC eine virtuelle Debian-Maschine laufen, die du als Druckserver für den Win-PC nutzt? Ist das dein Setting?

Erdnussbutter
Beiträge: 3
Registriert: 17.07.2020 01:32:29

Re: kvm/qemu und CPU-Auslastung beim Drucken via Netzwerk

Beitrag von Erdnussbutter » 17.07.2020 07:34:50

debianoli hat geschrieben: ↑ zum Beitrag ↑
17.07.2020 06:29:09
Du hast auf einem Windows PC eine virtuelle Debian-Maschine laufen, die du als Druckserver für den Win-PC nutzt?
Nein, ich habe einen PC mit Debian Buster, auf dem kvm/qemu (+ virt-manager) installiert ist. Auf dem Host läuft also Linux und dieser startet einen Guest mit Windows 10 Home.
Der Drucker hat unter anderem eine LAN Schnittstelle und ist über diese direkt am Telekom-Router angeschlossen.
In Windows wurde ich bei der Treiber-Installation gefragt, ob der Drucker per USB oder LAN angeschlossen ist. Windows soll nun über das LAN direkt auf den Drucker zugreifen.
Eigentlich soll der Windows 10 Guest die interne Netzwerkkarte vom Host mit benutzen, aber die Probleme treten auch mit einem direkt durchgereichten USB-Ethernet-Adapter auf.
Das hört sich erstmal wie ein reines Windows Problem an, aber es tritt scheinbar nur bei der Virtualisierung auf und dort auch nur über Netzwerk.

Viele Grüße
Erdnussbutter

reox
Beiträge: 2464
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: kvm/qemu und CPU-Auslastung beim Drucken via Netzwerk

Beitrag von reox » 17.07.2020 10:29:35

Probleme mit WIndows guests und hohen CPU lasten gibts manchmal bzgl der clock. da gibts ca 10k verschiedene settings was man da nehmen kann. Such mal in richtung hypervisor clock settings oder so. Ich hatte das bei meinem alten Job mal genauer angesehen und funktionierende Einstellungen dokumentiert. Aber jetzt halt keinen Zugriff auf meine Doku :facepalm:
Hast du die VM per Profil aufgesetzt oder das Generic verwendet?
Sind alle Virtio Treiber im guest installiert?

Erdnussbutter
Beiträge: 3
Registriert: 17.07.2020 01:32:29

Re: kvm/qemu und CPU-Auslastung beim Drucken via Netzwerk

Beitrag von Erdnussbutter » 17.07.2020 11:41:34

Hallo reox,

vielen Dank für Deine Hilfe.
reox hat geschrieben: ↑ zum Beitrag ↑
17.07.2020 10:29:35
Such mal in richtung hypervisor clock settings oder so.
Danke für den Hinweis, das werde ich tun.
reox hat geschrieben: ↑ zum Beitrag ↑
17.07.2020 10:29:35
Hast du die VM per Profil aufgesetzt oder das Generic verwendet?
Ich bin mir nicht ganz sicher ob ich verstehe was Du meinst. Ich habe nicht mit virsh gearbeitet (z.B. eine XML importiert), sondern in virt-manager mit dem Assistenten eine Neue VM erstellt, die ISO mit dem Windows Installationsmedium eingebunden und anhand der ISO wurde wohl automatisch Windows 10 als Guest-OS erkannt bzw. eingestellt. Zu dem Zeitpunkt hatte ich bis auf CPU-Anzahl, RAM und Datenträger-Größe alles auf default Einstellungen gelassen. Ich habe dann später die Festplatte und die Netzwerkkarte auf virtio umgestellt und die Grafik auf QXL.
reox hat geschrieben: ↑ zum Beitrag ↑
17.07.2020 10:29:35
Sind alle Virtio Treiber im guest installiert?
Zumindest alle, die ich als solche erkannt habe. Konkret also den SCSI Treiber für qcow2 (amd64 Verzeichnis) und den Treiber für die Netzwerkkarte (NetKVM).
Weiterhin habe ich dann noch den Treiber für die Grafikkarte (qxldod), den Balloon Treiber und den guest-agent installiert.

reox
Beiträge: 2464
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: kvm/qemu und CPU-Auslastung beim Drucken via Netzwerk

Beitrag von reox » 17.07.2020 13:04:23

Erdnussbutter hat geschrieben: ↑ zum Beitrag ↑
17.07.2020 11:41:34
anhand der ISO wurde wohl automatisch Windows 10 als Guest-OS erkannt bzw. eingestellt.
ja genau das meinte ich. Es gibt Profile bei denen manche Einstellungen dann verändert werden und somit besser funktionieren sollte.
Erdnussbutter hat geschrieben: ↑ zum Beitrag ↑
17.07.2020 11:41:34
Zumindest alle, die ich als solche erkannt habe. Konkret also den SCSI Treiber für qcow2 (amd64 Verzeichnis) und den Treiber für die Netzwerkkarte (NetKVM).
Weiterhin habe ich dann noch den Treiber für die Grafikkarte (qxldod), den Balloon Treiber und den guest-agent installiert.
Ok, das sollte eigentlich reichen.

Ich glaube nach diesem bugreport hatte ich damals mich vorgearbeitet: https://bugzilla.redhat.com/show_bug.cgi?id=1610461
Betrifft aber eher den Host als den Guest :/ Ging aber grundsätzlich um diese hpet timer.

Wir hatte mit einer VM mal Probleme, dass sie irgendein Programm immer mit 100% CPU laufen hatte. Die Lösung war die VM mal ~2h lang laufen zu lassen damit sich das normalisierte. War irgendwie der Module Installer oder so (auch das steht in meiner Doku :facepalm: und ich hatte damals auch nur Beruflich mit den VMs zu tun und hab es seit dem nicht mehr gebraucht...) Aber so klingt das ja bei dir eher nicht.

Was du aus verdacht einfach mal testen kannst, ist die Netzwerkkarte doch auf e100 oder so zu lassen. Ist dann zwar langsamer aber evt hat es da doch irgendwas. (Ich glaubs aber eher nicht, virtio hat bei mir immer sehr gut funktioniert)

Antworten