iperf3 liefert sehr geringen Durchsatz

Dec 19, 2012
494
14
83
Hallo.
Ich habe hier einen PVE Server 6.3-6 mit ZFS, der leider nicht die besten Werte in Sachen iperf3 liefert. Ich bin dieser Anleitung gefolgt:
https://fasterdata.es.net/performan...hooting-tools/iperf/disk-testing-using-iperf/

Nun habe ich alle drei Tests durchgeführt. Hier ist der letzte Test (`memory to disk`) mit Abstand am langsamsten -- da erhalte ich teilweise nur noch
eine Bandbreite von 10 bis 15 Mbits/sec. Bei den umgekehrten Tests komme ich auf Gigabit-Geschwindigkeiten. Ich wüsste gerne, woran das liegen kann? Der ZFS-Pool hat bisher keine Cache-Platte an Bord. Kann das so viel ausmachen?
 
Last edited:
Wie sieht denn dein Pool aus? Und testest du das direkt vom Host aus oder aus einem Gast heraus?
 
Der Pool sieht im Moment so aus:
Code:
  pool: zfs-pool-1
 state: ONLINE
  scan: scrub repaired 0B in 01:10:42 with 0 errors on Sun Apr 11 01:34:47 2021
config:

        NAME        STATE     READ WRITE CKSUM
        zfs-pool-1  ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            sda     ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd     ONLINE       0     0     0

errors: No known data errors

Und die Tests liefen sowohl vom Host als auch aus einer VM.
 
Hast du deine Volblocksize erhöht? Sonst verschwenden die VMs schonmal ordentlich Platz und schreiben zu viel wegen schlechtem Padding.

Guck mal hier. Spalte "A" ganz links ist in Sektoren, wenn du ashift von 12 nimmst (also die Laufwerke mit 4K arbeiten), dann musst du den Wert in der Spalte mit 4K multiplizieren...Zeile 5 (mit 2 Sektoren) und 67% Kapazitätsverlust von der Rohkapazität würdest du mit dem Standardwert von 8K verlieren. Nur 50% würdest du verlieren wenn du 12 Sektoren, also eine 24K Volblocksize nehmen würdest. 24K ist aber etwas problematisch weil es nicht 2^X entspricht. Das erste mit 50% Verlust was zu 2^X passt wäre eine Volblocksize von 256K. 256K wäre aber schon wieder extrem hoch und verschwenderisch wenn du viele kleine Writes hättest (wie DBs).

Sollte aber nicht sonderlich viel zur Performance beitragen, wenn das auf dem Host ausgeführt auch lahm ist, weil die Volblocksize nur bei VMs zum tragen kommt und Proxmox selbst sowie LXCs statt der Volblocksize die Recordsize verwenden (welche standardmäßig 128K ist).

Was für Laufwerksmodelle verwendest du genau? Sind keine HDDs die SMR benutzen oder?
 
Ich hole diesen Thread nochmal nach oben ... gerade einen weiteren Speedtest von einer VM in eine andere gemacht. Konkret habe ich es so gemacht:

Code:
auf VM A: iperf3 -s -F ./große-datei
auf VM B: iperf3 -c <IP von A>

Heraus kam dabei nur ein geringer Durchsatz:
Connecting to host 10.16.1.1, port 5201
[  5] local 10.20.100.110 port 47548 connected to 10.16.1.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  7.72 MBytes  64.7 Mbits/sec    0    437 KBytes     
[  5]   1.00-2.00   sec  4.66 MBytes  39.1 Mbits/sec    0    328 KBytes     
[  5]   2.00-3.00   sec  6.40 MBytes  53.7 Mbits/sec    0    328 KBytes     
[  5]   3.00-4.00   sec  6.15 MBytes  51.6 Mbits/sec    0    328 KBytes     
[  5]   4.00-5.00   sec  7.33 MBytes  61.5 Mbits/sec    0    328 KBytes     
[  5]   5.00-6.00   sec  3.85 MBytes  32.3 Mbits/sec    0    328 KBytes     
[  5]   6.00-7.00   sec  2.80 MBytes  23.5 Mbits/sec    0    328 KBytes     
[  5]   7.00-8.00   sec  4.60 MBytes  38.6 Mbits/sec    0    328 KBytes     
[  5]   8.00-9.00   sec  5.47 MBytes  45.9 Mbits/sec    0    328 KBytes     
[  5]   9.00-10.00  sec  4.66 MBytes  39.1 Mbits/sec    0    328 KBytes     
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  53.6 MBytes  45.0 Mbits/sec    0             sender
[  5]   0.00-10.00  sec  49.2 MBytes  41.3 Mbits/sec                  receiver

Beim Durchlauf davor sogar nur
Code:
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  41.6 MBytes  34.9 Mbits/sec    3             sender
[  5]   0.00-10.00  sec  37.0 MBytes  31.0 Mbits/sec                  receiver
Wonach kann ich da schauen? Ich dem dem ZPOOL (Z2) mittlerweile einen Extra-Cache (SSD) spendiert -- hat aber keine wesentliche Verbesserung gebracht.

Nachtrag: Wenn ich nur über's RAM und nicht über die Disk gehe, sehe ich übrigens ordentlichen Durchsatz:
Code:
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  9.04 GBytes  7.76 Gbits/sec  7020             sender
[  5]   0.00-10.00  sec  9.04 GBytes  7.76 Gbits/sec                  receiver
 
Last edited:

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!