Meine Beobachtungen zur IOPS-Performance zwischen Hardware RAID 10 und NVMe-Speicher


Andreas.

New Member
Seit gut einem Jahr beobachte ich, dass immer wenn ein Provider damit wirbt, dass er für sein Hostsystem zur Stellung von virtuellen Servern neuerdings anstelle des bisher eingesetzten Hardware RAID-Controllers im RAID-Verbund 10 nun NVMe-Speicher verwendet, danach die gemessenen IOPS extrem gesunken sind. Siehe folgende Ergebnisse:

Ergebnis für NVMe-Speicher:
Code:
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2022-05-06                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Sun May 21 09:45:09 UTC 2023

Basic System Information:
---------------------------------
Uptime     : 0 days, 0 hours, 6 minutes
Processor  : AMD EPYC-Milan Processor
CPU cores  : 8 @ 2495.310 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ✔ Enabled
RAM        : 15.6 GiB
Swap       : 2.0 GiB
Disk       : 320.0 GiB
Distro     : AlmaLinux 8.8 (Sapphire Caracal)
Kernel     : 4.18.0-477.10.1.el8_8.x86_64

fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 40.02 MB/s   (10.0k) | 497.18 MB/s   (7.7k)
Write      | 40.12 MB/s   (10.0k) | 499.79 MB/s   (7.8k)
Total      | 80.15 MB/s   (20.0k) | 996.98 MB/s  (15.5k)
           |                      |
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 474.42 MB/s    (926) | 468.50 MB/s    (457)
Write      | 499.63 MB/s    (975) | 499.70 MB/s    (487)
Total      | 974.05 MB/s   (1.9k) | 968.21 MB/s    (944)

Ergebnis für Hardware RAID 10:
Code:
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2022-05-06                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Sun May 21 11:59:25 CEST 2023

Basic System Information:
---------------------------------
Uptime     : 0 days, 17 hours, 17 minutes
Processor  : Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz
CPU cores  : 6 @ 2194.843 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM        : 17.3 GiB
Swap       : 2.0 GiB
Disk       : 157.9 GiB
Distro     : AlmaLinux 8.8 (Sapphire Caracal)
Kernel     : 4.18.0-477.10.1.el8_8.x86_64

fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 230.78 MB/s  (57.6k) | 1.09 GB/s    (17.0k)
Write      | 231.39 MB/s  (57.8k) | 1.09 GB/s    (17.1k)
Total      | 462.18 MB/s (115.5k) | 2.18 GB/s    (34.2k)
           |                      |
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 981.21 MB/s   (1.9k) | 847.41 MB/s    (827)
Write      | 1.03 GB/s     (2.0k) | 903.85 MB/s    (882)
Total      | 2.01 GB/s     (3.9k) | 1.75 GB/s     (1.7k)

Da es ja kein Einzelfall ist, meine Frage mal an die Forum-Mitglieder: Wie nehmt ihr derzeitige Situation bezogen auf die IOPS und NVMe-Speicher auf die gestellten virtuellen SSD´s war und was könnten die Gründe des IOPS-Einbruchs sein, zumal ja NVMe-Speicher eine deutlich höhere IOPS haben sollte?
 
Woran erkennt man denn innert der VM, dass dieses auf einem HW-RAID-Controller liegt und/oder es NVMe sind?
 
Weiterer wesentlicher Einfluss auf die Performance, den man als Endbenutzer weder sehen noch beeinflussen kann ist die Zahl der Kunden pro System. Wenn der Provider dann sieht: Ok. Cool! NVMe hat viel mehr IOPS bzw. Durchsatz. Da kann ich ja X % mehr Kunden drauf legen und die Performance bleibt für alle gleich. Zusätzlich kann man das einfach noch als Marketing-Argument verwenden, obgleich da auf Kundenseite gar kein effektiver Vorteil bei der Umstellung vorhanden ist. Aber natürlich gibt es immer solche und solche Anbieter.
 
Also wir beobachten das nicht. Es gibt aber Unmengen an Dingen, die die IOPS positiv wie negativ beeinflussen können, ein oft unterschätzter Faktor ist die Single-Core-Performance. Wir haben in VMs, die auf AMD Ryzen und SAS-SSDs liefen, teils doppelt so viele IOPS gemessen, wie in AMD EPYC-Systemen mit NVMe-SSDs.

Von der Bereitstellung des VM-Storage (RAW-Image, QCOW2, RBD, LVM, LVM mit Thin Provisioning, ZFS, ...) und etwaigen Cache-Settings sprechen wir da noch gar nicht. Hier können auf identischer Hardware vollkommen abweichende Ergebnisse erzielt werden.
 
Woran erkennt man denn innert der VM, dass dieses auf einem HW-RAID-Controller liegt und/oder es NVMe sind?

Als Kunde solcher VM´s kann man es nicht feststellen, da man ja auf dem Wirt kein Root-Zugriff hat.
Von daher kann man nur mit Hilfe solcher IO-Tests schauen, ob das Werbeversprechen des Providers den eigenen Ansprüchen genügt.

Denn an Hand der so gemessenen Werte kann man zu mindestens schon mal folgende Eigenschaften des unter der virtuellen Platte angebotenem RAID-Systems herauslesen:
  • Handelt es sich tatsächlich hier um SSD´s oder gar nur um normale HDD´s? Siehe dazu die Werte unter der Überschrift 4k und vergleiche Diese wenn möglich mit eigenen Referenzwerten eigener HDD´s.

  • Welches RAID-Array (RAID-Verbund) könnte da verwendet werden? Siehe dazu die Werte unter der Überschrift 64k und vergleiche Diese wenn möglich auch mit eigenen Referenzwerten. Denn die Werte bei z.B. einem RAID-1-Verbund oder gar keinem RAID-Verbund liegen meistens bei SSD`s bei Werten zwischen 3k und weit weniger IOPS.

  • Anzahl der eventuell eingesetzten SSD´s. Siehe dazu die Werte unter der Überschrift 64k und vergleiche Diese wenn möglich mit eigenen Referenzwerten.
Um dies mal zu verdeutlichen, habe ich hier auch mal zwei solcher Meßergebnisse erstellt und mit beigefügt.

Ergebnis für ein Hardware-RAID 10 mit wahrscheinlich mehr als nur 4 SSD´s:
Code:
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2022-05-06                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Sa 27. Mai 12:01:05 CEST 2023

Uptime     : 47 days, 17 hours, 29 minutes
Processor  : Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz
CPU cores  : 8 @ 2099.984 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ✔ Enabled
RAM        : 15.9 GiB
Swap       : 4.0 GiB
Disk       : 150.4 GiB
Distro     : Rocky Linux 8.7 (Green Obsidian)
Kernel     : 4.18.0-425.19.2.el8_7.x86_64

fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 163.48 MB/s  (40.8k) | 712.41 MB/s  (11.1k)
Write      | 163.91 MB/s  (40.9k) | 716.16 MB/s  (11.1k)
Total      | 327.39 MB/s  (81.8k) | 1.42 GB/s    (22.3k)
           |                      |
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 663.27 MB/s   (1.2k) | 796.22 MB/s    (777)
Write      | 698.51 MB/s   (1.3k) | 849.24 MB/s    (829)
Total      | 1.36 GB/s     (2.6k) | 1.64 GB/s     (1.6k)
Dieses Meßergebnis deutet auf ein Hardware RAID-10-Verbund hin, weil hier zum einem der Provider auch damit auf seiner Webseite geworben hat und weil hier unter der Überschrift 64k im Verhältnis zu den Werten unter der Überschrift 4k weitaus mehr IOPS gemessen werden als bei einem RAID-1-Verbund.
Weiterhin deutet diese Messung auch daraufhin, dass hier in diesem RAID-10-Verbund eventuell auch mehr als nur 4 SSD´s mit im Spiel sind, was dem Kunden und dessen Datenbank-System im Preisleistungsverhältnis zu den einzelnen Mitbewerbern auch zu Gute kommt.
Hier lehne ich mich mal ganz weit aus dem Fenster heraus und würde sogar mal davon ausgehen, dass hier anstelle von 4 sogar 8 SSD´s verwendet werden, da der Datendurchsatz im Gegensatzt zur Folgemessung unter der Überschrift 64k um ca. das Vierfache höher liegt.

Ergebnis für NVMe-Speicher:
Code:
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
#              Yet-Another-Bench-Script              #
#                     v2022-05-06                    #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #

Wed 24 May 2023 12:28:13 AM CEST

Basic System Information:
---------------------------------
Uptime     : 0 days, 0 hours, 17 minutes
Processor  : AMD EPYC 7282 16-Core Processor
CPU cores  : 2 @ 2794.748 MHz
AES-NI     : ✔ Enabled
VM-x/AMD-V : ✔ Enabled
RAM        : 7.8 GiB
Swap       : 7.4 GiB
Disk       : 24.5 GiB
Distro     : Debian GNU/Linux 11 (bullseye)
Kernel     : 5.15.107-2-pve

fio Disk Speed Tests (Mixed R/W 50/50):
---------------------------------
Block Size | 4k            (IOPS) | 64k           (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 182.70 MB/s  (45.6k) | 180.34 MB/s   (2.8k)
Write      | 183.19 MB/s  (45.7k) | 181.29 MB/s   (2.8k)
Total      | 365.89 MB/s  (91.4k) | 361.63 MB/s   (5.6k)
           |                      |
Block Size | 512k          (IOPS) | 1m            (IOPS)
  ------   | ---            ----  | ----           ----
Read       | 173.93 MB/s    (339) | 213.45 MB/s    (208)
Write      | 183.17 MB/s    (357) | 227.67 MB/s    (222)
Total      | 357.11 MB/s    (696) | 441.13 MB/s    (430)
Bei dieser Messung sieht man zwar, daß unter der Überschrift 4k die Werte für die IOPS so ziemlich identisch sind, aber es sich hier mit höchster Wahrscheinlichkeit nur um ein RAID-1-Verbund oder gar um kein RAID-Verbund handelt. Siehe dazu die Werte unter der Überschrift 64k.
 
Last edited:
Es wird verbaute Techink und nicht dessen Datendurchsatz, bzw. dem Kunden verfügbarer Datendurchsatz, beworben.

Ein System mit HDD Raid 1 kann schneller sein als ein anderes system mit SSD Raid 10 usw., wie auch immer die Auslastung des Hostsystems ist.
So kann auch ein Softraid mal schneller sein als ein HW Raid.

Mal ganz davon abgesehen das man den max. Disk IO in VMs genau so künstlich beschränken kann wie man es von Virtuellen Netzwerkkarten kennt. Damit kann man ein Host System noch genauer kalkulieren bzw. "runder" laufen lassen.

Wen du nicht exakt zwei gleiche Basis-Systeme vergleichst, mit dem einizigen unterschied im zusammenbau des Raids, dann sind die Benchmarks ziemlich wertlos.
 
Also der Benchmark mag durchaus interessant sein, in dem Sinne, zu erkennen, was ein Hoster an Leistung bereitstellt. Das kann zufällig sein - je nach dem wieviel Kundenlast da drauf ist, oder falls und wenn ja welche Limits eingestellt sind. Natürlich lassen sich da keine Rückschlüsse auf die Geschwindigkeit der verwendeten HW herstellen.
 
Es wird verbaute Techink und nicht dessen Datendurchsatz, bzw. dem Kunden verfügbarer Datendurchsatz, beworben.

Durch Werbeslogans wie z.B. "Schneller NVMe-SSD-Speicher" oder auch "X GB NVMe-Speicher" wird dem potentiellen Kunden schon suggeriert, dass er auch einen gewissen hohen Datendurchsatz, wie man ihn auch bei Konsumer NVMe-SSD vorfinden kann, bekommen wird. Denn mehr an technische Daten wird dem potentiellen Kunden zum betreffendem Produkt meisten nicht auf deren Webseiten zur Verfügung gestellt.

Mal ganz davon abgesehen das man den max. Disk IO in VMs genau so künstlich beschränken kann wie man es von Virtuellen Netzwerkkarten kennt. Damit kann man ein Host System noch genauer kalkulieren bzw. "runder" laufen lassen.

Ich kenne keinen Provider der solche oder auch ähnliche Beschränkungen auf seiner Webseite bewirbt. Von daher kann der Kunde auch nicht vorher schon wissen, dass es solche oder auch ähnliche Beschränkungen gibt und ist von daher auch auf eigene Messungen angewiesen.

Wen du nicht exakt zwei gleiche Basis-Systeme vergleichst, mit dem einizigen unterschied im zusammenbau des Raids, dann sind die Benchmarks ziemlich wertlos.

Bei VM´s unterschiedlicher Provider ist dies auch nicht möglich. Da aufgrund dem Konkurrenzverhalten der einzelnen Provider dem potentiellen Kunden mit deren Webeversprechen wie schon beschrieben nur das Beste angeboten werden soll und damit weitere Provider gleich ausgestochen werden sollen.

Schau dir auch mal die einzelnen Webseiten der einzelnen unterschiedlichen Provider mit dessen Produkte im Bezug auf virtuelle Server genauer an. Denn davon gibt es ja sehr viele, die solche oder auch ähnliche schwammige technische Angaben zu ihren Produkten machen.
 
Mal ganz ehrlich: Wen interessiert das wirklich?

Mich hat es in den letzten 25 Jahren nicht ein einziges Mal interessiert, wieviele IOPS oder kb/s die Datenträger meines (v)Server im Moment der Durchführung eines fehlerhaften Benchmarks schaffen, sondern ob meine Anwendungen im realen Rgelbetrieb meine Performance-Erwartungen erfüllen oder ich damit zu einem anderen Produkt oder Anbieter wechseln muss.
Selbst (langsame) 5400er HDDs sind für die meisten Webanwendungen inklusive Datenbanken schnell genug, auch ohne RAID...


Kurz: Wer mit Benchmarks jedweder Art argumentiert, der hat absolut keine Ahnung von der Realworld-Performance (s)eines Systems...
 
Durch Werbeslogans wie z.B. "Schneller NVMe-SSD-Speicher" oder auch "X GB NVMe-Speicher" wird dem potentiellen Kunden schon suggeriert, dass er auch einen gewissen hohen Datendurchsatz, wie man ihn auch bei Konsumer NVMe-SSD vorfinden kann, bekommen wird.
Willkommen in der Verbraucher-Welt.

NVMe ist nicht gleich NVMe!

Alleine hier gibt es duzende Generationen mit deren limitationen oder Bottlenecks z.B. durch billig Chips bis zurück zu 1:1 kostengünstiger SSD Technik mit 500MB/s SATA-III auf M/U.2 Format anstatt 15000MB/s PCIE Gen 5 x4.

Ich kenne keinen Provider der solche oder auch ähnliche Beschränkungen auf seiner Webseite bewirbt.
Gerade dann brauchst du manchmal nur einen einzigen "dummen" Nachbarn auf dem Host-System welcher deine Performance zerstört.


Ggf. schicke deine Beobachtungen direkt zu entsprechenden Providern. Letzten Endes ist auch ein Treiber / Kernelproblem nicht auszuschließen.
 
Last edited:
Willkommen in der Verbraucher-Welt.

NVMe ist nicht gleich NVMe!

Alleine hier gibt es duzende Generationen mit deren limitationen oder Bottlenecks z.B. durch billig Chips bis zurück zu 1:1 kostengünstiger SSD Technik mit 500MB/s SATA-III auf M/U.2 Format anstatt 15000MB/s PCIE Gen 5 x4.
Genau das ist es, was Ottonormalverbraucher erlebt, wenn er den Werbeslogan "NVMe-Speicher" liest und davon ausgeht, dass dieser Speicher doch gegenüber der älteren Generation (SSD + Hardware-RAID 10) deutlich schneller sein müßte, aber dann nach seinen eigenen IOPS-Messungen erst mitbekommt, dass die neuere Genration nicht mal die IOPS der älteren Generation vom Meßergebnis übertrifft.

Gerade dann brauchst du manchmal nur einen einzigen "dummen" Nachbarn auf dem Host-System welcher deine Performance zerstört.
Aufgrund folgender Aussage bin ich eher davon ausgegangen, das mit der künstlichen Beschränkung die Quotierung per Datendurchsatzes- und IOPS mit Hilfe der auf dem Wirt angebotenen Tools gemeint war.
Mal ganz davon abgesehen das man den max. Disk IO in VMs genau so künstlich beschränken kann wie man es von Virtuellen Netzwerkkarten kennt. Damit kann man ein Host System noch genauer kalkulieren bzw. "runder" laufen lassen.
Von daher habe ich die Nachbarn als solche Störer auch mal außenvor gelassen, weil ja solche künstliche Beschränkung schon mal auch dazu beitragen kann, das gesamte maximale Disk IO nach Möglichkeit auf alle Kunden gleichmäßig verteilen zu können.
 
Back
Top