BENCHMARK / macOS
Der DEXT-Benchmark braucht lokale Admin-Rechte und kommt deshalb mit der Pro-Version außerhalb des App Stores (Q2/27). Er misst den Datenpfad im Mac: App, DriverKit-Treiber und Speicherstack von macOS. Netzwerk und NAS sind dabei nicht beteiligt (RAW-Loopback).
Gemessen auf Apple Silicon (M1 und M5) mit macOS 27 (Golden Gate) sowie auf Intel (MacBook Pro 2019, i9). iSCSI4NAS läuft auf Apple Silicon ab macOS 15 (Sequoia) und auf Intel mit macOS 13 (Ventura) bis 26 (Tahoe).
Nutzdaten in Gbit/s, Mittel über die Queue-Tiefen 4 bis 128.
READ WRITE · Gbit/s
Screenshots aus der App, so wie der Benchmark sie anzeigt.
| iSCSI4NAS (arm64) | iSCSI4NAS (Intel) | Dev (arm64) | Dev mit KEXT (arm64) | |
|---|---|---|---|---|
| Mac | Apple (M1 & M5) | Apple (Intel i9) | Apple (M1 & M5) | Apple (M1 & M5) |
| macOS | ab 15 (Sequoia) | 13 (Ventura) bis 26 (Tahoe) | 27.2 (Golden Gate) | 27 (Golden Gate) |
| Treiber | DriverKit | DriverKit | DriverKit | DriverKit und KEXT |
| LUN Format möglich? | Disk Utility & CLI | Disk Utility & CLI | nur CLI | Disk Utility & CLI |
| READ Höchstwert | 2,75 Gbit/s | 18,55 Gbit/s | 8,68 Gbit/s | 81,23 Gbit/s |
| READ Mittel | 2,42 Gbit/s | 17,88 Gbit/s | 6,62 Gbit/s | 69,80 Gbit/s |
| READ Tiefstwert (QD 1) | 0,55 Gbit/s | 7,14 Gbit/s | 1,10 Gbit/s | 26,17 Gbit/s |
| WRITE Höchstwert | 2,67 Gbit/s | 18,84 Gbit/s | 6,97 Gbit/s | 84,81 Gbit/s |
| WRITE Mittel | 2,34 Gbit/s | 18,21 Gbit/s | 5,80 Gbit/s | 69,83 Gbit/s |
| WRITE Tiefstwert (QD 1) | 0,55 Gbit/s | 7,17 Gbit/s | 1,09 Gbit/s | 23,72 Gbit/s |
Mittel über die Queue-Tiefen 4 bis 128. Beim Lauf mit KEXT zeigt die App den Mittelwert ohne Angabe des Bereichs.
iSCSI4NAS nutzt den SCSI-Controller-Pfad von DriverKit. Über ihn erhält der Treiber jeden Datenpuffer direkt. macOS bereitet diese Puffer allerdings für DMA vor, also für den direkten Speicherzugriff durch Hardware. iSCSI4NAS hat keine eigene Hardware. Die Daten bewegt die CPU, das Netzwerk bringt sie zum NAS. Für einen virtuellen Controller bildet die DMA-Vorbereitung nur eine Speicherseite pro Auftrag zuverlässig ab.
Intel-Macs arbeiten anders. Dort lässt sich ein Datenblock am Stück vorbereiten. Deshalb erreicht iSCSI4NAS (Intel) im Mittel rund 18 Gbit/s. Das ist die reine Treiberleistung (NULL-DEXT), gemessen ohne Netzwerk und NAS. Auf macOS 13 Ventura liegt der Wert auf vergleichbarer Hardware ebenso hoch. Intel-Prozessoren sind öffentlich dokumentiert, ihre IOMMU (VT-d) eingeschlossen. macOS läuft seit 2006 auf Intel, der Kernel hatte dort rund zwei Jahrzehnte Zeit zu reifen. Apple Silicon gibt es seit 2020.
Apple Silicon arbeitet mit einer eigenen Adressübersetzung für jedes Gerät. Ein virtueller Controller wie der von iSCSI4NAS hängt an keinem Gerät. Größere Datenblöcke sind dort nicht zuverlässig. Für Apple Silicon gibt es auf dieser Ebene keine öffentliche Dokumentation.
Trotzdem läuft iSCSI4NAS auf Apple Silicon. Vor der ersten Zeile des Initiators haben wir uns fast drei Jahre lang mit dem Kernel und der CPU auseinandergesetzt. Am Ende haben wir macOS und die CPU „überredet“. iSCSI4NAS (arm64) liefert so korrekte Daten und das Formatieren über das Festplattendienstprogramm funktioniert. Der Preis dafür ist Durchsatz. Dev (arm64) zeigt dieselbe Hardware ohne diese Schutzschicht: Es ist schneller, das Formatieren geht aber nur über die CLI.
Die Spalte „Dev mit KEXT“ zeigt, was ohne diese Grenzen möglich ist: rund 70 Gbit/s. Auch das ist reine Treiberleistung (NULL-DEXT). Eine Kernel-Erweiterung (KEXT) hängt sich direkt an den Kernel und hilft ihm, unseren Treiber besser zu verstehen. Im Bild vom Haus bekommt iSCSI4NAS damit einen eigenen Schlüssel. Die Berechtigungen (Entitlements), um KEXT-Treiber zu entwickeln und zu verteilen, gibt Apple allerdings nicht mehr heraus. Ausliefern lässt sich diese Variante deshalb nicht.
Die Ursachen liegen in macOS, ein Treiber kann sie nicht beheben. Wir haben sie Apple mit Feedback-Berichten gemeldet. Belegt sind sie mit Kernel-Analysen, Panic-Protokollen und Mitschnitten der Netzwerkdaten. Apple hat uns gebeten, die Details dazu vertraulich zu behandeln. Daran halten wir uns.
Sobald macOS größere Datenblöcke für Software-Controller zuverlässig verarbeitet, heben wir die Grenze an.
Bis dahin gilt bei iSCSI4NAS:
Korrekte Daten vor Geschwindigkeit.
Der Benchmark ist Teil der Pro-Version und wird auch als NULL-DEXT bezeichnet.
Gemessen wird der Nutzdatendurchsatz in Gbit/s je Queue-Tiefe. Höchstwert und Tiefstwert sind die Extreme über alle Queue-Tiefen, der Tiefstwert liegt bei Queue-Tiefe 1.
Seit etwa 2013/2014 werden SOHO-NAS-Systeme standardmäßig mit Queue-Tiefe 64 ausgeliefert. Werte unter und über QD 64 sind interessant, spielen technisch aber kaum bis keine Rolle.
Der Test läuft ohne Netzwerk und NAS. Die Werte zeigen den Durchsatz des DEXT-Treibers im Mac und sind keine Angabe zum iSCSI-Durchsatz über das Netzwerk.