[SOLVED] Speed Enhancements für passthrough Disks

0zw00d

Member
Jan 20, 2022
19
1
8
42
Hi zusammen,
welche Möglichkeiten hat man via Proxmox die geschwindkeit der durchgereichten platten zu erhöhen?

Zu meiner Konfiguration:
- Proxmox < aktuell
- vm openmediavault < aktuell
- passthrough 2x 4TB und 2x2TB SATA Disks an openmediavault
- raid 1 für jeweils 4TB und 2TB in OMV

worum geht es mir?

Ich Speichere alles (auch VMs für Proxmox) auf diesen platten, hier liegt auch meine Multimedia Bibliothek.
Der zugriff erfolgt, über die entsprechende IP der VM bzw. des entsprechenden CTs, je nach Anwendung.

Wo liegt das Problem?

das Problem ist, das während zb. Downloads laufen oder eine Multimedia Datei (explizit Videos) irgendwo im Heimnetz abgespielt werden, z.b. gestreamte Musik ins Stocken gerät, mit Aussetzern.

Ich hatte vorher nur OMV installiert, inkl Docker (die Docker Applikationen, habe ich nach Proxmox emigriert, welche dort auch wunderbar laufen), der zugriff auf alle Inhalte wird nur per SMB gestattet, oder via stream (vlc, daapd. etc.).
Unter OMV gab es performancetechnisch keine Probleme, kein stottern, keine Aussetzer.

Ich habe nun die Vermutung das es irgendein Konfigurationsproblem ist.

Für Hilfe wäre ich dankbar.
 
hi,

kannst du mal die vm config posten? (qm config ID) ?
 
Auch nicht vergessen, dass ein Passthrough über "qm set" kein physischer Passtrough ist. Deine VM arbeitet trotzdem noch mit virtuellen disks und hat entsprechend Overhead. Direkten/physischen Zugriff auf die Disks ohne zusätzlichen Overhead bekommt eine VM höchstens wenn man den kompletten disk controller mit allen angeschlossenen Disks per PCI Passthrough in die VM durchreicht.
 
@dcsapak
Code:
boot: order=ide2;sata0;net0
cores: 2
cpu: host
ide2: none,media=cdrom
memory: 4096
meta: creation-qemu=6.1.0,ctime=1641455795
name: OMV
net0: virtio=52:2F:33:E8:90:3A,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: l26
sata0: local-lvm:vm-100-disk-0,size=15G
scsi0: /dev/disk/by-id/ata-WDC_WD40EZRZ-19GXCB0_WD-WCC7K6XKNV07,cache=writeback,size=3907018584K
scsi1: /dev/disk/by-id/ata-WDC_WD40EZRZ-19GXCB0_WD-WCC7K1HAZHCV,cache=writeback,size=3907018584K
smbios1: uuid=456c89f5-c0bd-482b-8670-23b20d719b49
sockets: 1
virtio2: /dev/disk/by-id/ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VZ9014,aio=native,cache=directsync,iothread=1,size=1953514584K
virtio3: /dev/disk/by-id/ata-WDC_WD20EARS-00MVWB0_WD-WCAZA2932348,aio=native,cache=directsync,iothread=1,size=1953514584K
vmgenid: 712bba8d-0316-4bce-9127-b76e20256a62

die virtio Geschichten fliegen nachher raus, ich weiss ist nicht mehr state of the art, war ein versuch.

@Dunuin hm, okay leuchtet ein. Die frage ist wie komme ich dahin das die entsprechenden SATA Ports direkt durchgereicht werden?
 
Last edited:
was gleich auffällt ist das der scsi controller nicht auf virtio-scsi gestellt ist, das könnte einen großen performance sprung machen da die scsi hw dann nicht emuliert werden muss
falls das noch nicht genug ist, kann man vielleicht auch iothreads auf den disks anmachen (müssen scsi sein + scsihw muss auf virtio-scsi-single stehen).
mit der option wird dann pro disk 1 thread verwendet (statt 1 thread für alle disks)
 
@dcsapak gut dazu folgende fragen:
1.) wie stelle ich den scsi controller auf virtio-scsi um?
2.) soll der virtio driver überhaupt noch genutzt werden, ich müsste nachschauen aber meine der wäre wohl demnächst deprecated?
wie hier:
Code:
virtio2: /dev/disk/by-id/ata-WDC_WD20EFRX-68EUZN0_WD-WCC4M0VZ9014,aio=native,cache=directsync,iothread=1,size=1953514584K
virtio3: /dev/disk/by-id/ata-WDC_WD20EARS-00MVWB0_WD-WCAZA2932348,aio=native,cache=directsync,iothread=1,size=1953514584K
diese Konstellation war tierisch langsam...
3.) wie genau erhöhe ich die iothreads auf den disks bzw. aktiviere diese? einfach iothread=1?
 
Last edited:
Wenn ich das richtig sehe erzwingst du mit "directsync" auch überall Sync Writes. Die sind immer viel viel langsamer als Async Writes.
Und Writeback als Cachemode sollte man eigentlich nur nehmen, wenn der Server an einer USV hängt.

1.) wie stelle ich den scsi controller auf virtio-scsi um?
Für deine virtuellen Disks wäre das im WebUI: "DeineVM -> Hardware -> SCSI Controller -> Edit -> Virtio SCSI single"
Bei den "qm set"-Passtrough Disks müsstest du die erst im WebUI unter "DeineVM -> Hardware -> virtio2/3 -> Detach" entfernen und dann erneut hinzufügen, aber dann mit z.B. "scsi2" statt "virtio2" im Befehl wie z.B. auch hier benutzt: https://pve.proxmox.com/wiki/Passthrough_Physical_Disk_to_Virtual_Machine_(VM)

2.) soll der virtio driver überhaupt noch genutzt werden, ich müsste nachschauen aber meine der wäre wohl demnächst deprecated?
wie hier:
Virtio SCSI heißt nicht, dass du da für die Disks "virtio" einstellen musst. Da nimmt man dann trotzdem "scsi".
 
@Dunuin ok verstehe. Habe nun mal die default Werte eingestellt für alle disks.
Wie gesagt die zwei Einträge in der config waren ein Test. Habe nun alle Platte auf Virtio scsi umgestellt.
Iothread für alle Platten aktiviert.
Spitzenwerte sind nun nicht mehr >40MB/s sondern liegen bei < 130 -150MB/s.
Das sind annähernd die Werte die ich ohne Virtualisierung auch erreicht hatte.

Vielen Dank euch allen.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!