Schnelle SSDs unter Windows: Perlen vor die Säue?

foofoobar

Captain
Registriert
Dez. 2011
Beiträge
3.569
In diesem Thread hat ein User mit fio Vergleichsmessungen zwischen Linux und Windows gemacht.

Hier habe ich die Werte zwischen Linux und Windows verglichen und kommentiert, kann es sein das Windows schnelle SSDs nicht richtig Auslasten kann und deswegen SSD-Benchmarks unter Windows sinnlos sind weil Windows den (heftigen) Engpass darstellt?

Hat jemand weitere Messungen zum vergleichen?
 
Ich weiß nicht, ob man das so vergleichen kann. Linux und Windows sind unterschiedliche Betriebssysteme, die unterschiedlich funktionieren, deswegen das eine oder das andere zum Heiligen Gral zu erklären finde ich nicht zielführend. Nur ein Reallife Beispiel:

Ich benutze beruflich viel Wireshark. Wireshark performt auf MacOS teilweise mehr als doppelt so schnell wie unter Windows oder gar noch besser. Das war schon immer so und wird sich auch nicht ändern. Das war vor 15 Jahren mit dem IBM Chips im MAC, das war vor 10 Jahren so mit den Intel Chips im MAC und das ist heute so mit dem ARM CHips im MAC. Selbst bei deutliche schwächerer Hardware ist WIreshark wesentlich weniger Ressourcenintensiv auf MacOS als auf Windows.
Bei Linux bewegt es sich dazwischen.

Die Entwickler von Wireshark (war selbst paar Mal auf den Sharkfests und konnte mit ihnen sprechen) erklären das mit grundsätzlich Unterschieden im OS-Design und es eher "Zufall" ist, dass WIndows da so schlecht abschneidet. Sie haben explizit erwähnt, dass sie weder für das eine noch für das andere "speziell" optimiert haben, bzw. sie vor allem daran interessiert sind, dass Wireshark auf Windows ähnlich gut performent, wie auf anderen Plattformen.

Worauf ich hinaus will ist, selbst Bechnmarkprogramme müssen durch unterschiedliche OS-Designs selbst wenn sie gleich wirken, nicht gleich sein. In der High-Level-Beschreibung sind sie noch identisch, aber im Detail nicht mehr, geht vermutlich schon bei den Bibliotheken los. Da könne noch verschiedene Layer/Stacks eine Rolle spielen und beeinflussen. Also am Ende vergleichst du immer Äpfel mit Birnen bei so einem Cross-OS Vergleich und kannst die Unterschiede zwar feststellen, aber nicht unbedingt vergleichen.

Es kann sein, dass Windows nicht so gut performt in dem Fall wie Linux, es kann sein, dass das Benchmarkprogramm unter Linux Operationen durchführt, die so unter Windows nicht möglich sind, und deshalb langsamer sind. Letztlich zählt die Reallife Performance und nicht irgendein Benchmark und da habe ich bisher wenig Klagen gehört, bei SSD-zu-SSD Operationen und Windows selbst kann ja schon seit SATA-SSDs kaum einen Vorteil aus SSDs ziehen.

Aber selbst da, wie man an meinem Wireshark Beispiel sieht, kann es von OS zu OS unterschiede geben. Wenn man mit dem System seine Brötchen verdient, kann "Augen auf bei der geeigneten OS Wahl" eine Rolle spielen. Windows ist halt ein passabler Allrounder, aber nicht in allen Nischen das beste.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Rickmer, KillerCow, Cobra975 und eine weitere Person
Sinnlos sind die Benchmarks nicht, sie zeigen dir wie sich die SSD (+ der IO Stack) unter Windows verhält.

Prinzipiell gibts erstmal zig Parameter die dafür sorgen, dass die Ergebnisse schwer direkt zu vergleichen sind.
Hast du die Tests direkt auf dem Raw Device durchgeführt? Falls nein kann alleine schon das unterschiedliche Dateisystem für große Unterschiede sorgen - einerseits durch die interne unterschiedliche Arbeitsweise und andererseits weil dadurch die eigentliche IO Last auch unterschiedlich ist je nachdem was außer den Nutzdaten noch verändert werden muss (Journaling, Timestamps etc.). Das kann schon dafür sorgen, dass die FW der SSD ihre Schwächen aufzeigt und für Latenzen sorgt. Sprich, du weißt nicht wo die Unterschiede herkommen, nur das sie in dieser Messung da sind.

Aber prinzipiell fährt man bei Linux besser was IO angeht, wenn man moderne Möglichkeiten nutzen kann. Windows hat nur ansatzweise etwas vergleichbares zu io_uring und damit ist Linux was den Overhead aus Systemcalls angeht Windows um Welten voraus. Das macht aber noch lange nicht jeden Workload schlecht unter Windows. Wenn es um große Transfers geht, ist der Overhead aus den IO Systemcalls irrelevant und da ist auch Window schnell.
 
  • Gefällt mir
Reaktionen: KillerCow, conf_t und mibbio
Ich habe auf meinem System mit i5 4590 auf zwei gleichen SSDs (2x860evo 250GB) einmal ein aktuelles W10 und auf der anderen ein Elementory OS, um mich mal mit Linux zu beschäftigen, wenn dann W10 zu Grabe getragen wird, und umgestellt werden soll. Beide Systeme laufen eigentlich wie installiert, ohne Optimierungen.
Mein gefühlter Eindruck: W10 ist bei einfachen Operationen schneller. Elementory OS hat manchmal seltsame Sekunden-Verzögerungen, die das OS etwas zäh machen. Lässt sich da etwas verbessern? Andere Distribution?
 
@peljotha Dafür wäre glaube ich ein eigener Thread sinnvoll, da das doch arg an der Fragestellung vorbeigeht.
 
peljotha schrieb:
Mein gefühlter Eindruck: W10 ist bei einfachen Operationen schneller. Elementory OS hat manchmal seltsame Sekunden-Verzögerungen, die das OS etwas zäh machen. Lässt sich da etwas verbessern? Andere Distribution?
Elementare OS ist auf Optik und User Experience optimiert. Wenn Performance irgend eine Rolle spielt würde ich die Finger davon lassen und auf eine Mainstream Distribution setzen.
 
Gut, dann versuche ich mal das reine Ubuntu.
 
conf_t schrieb:
Ich weiß nicht, ob man das so vergleichen kann. Linux und Windows sind unterschiedliche Betriebssysteme, die unterschiedlich funktionieren, deswegen das eine oder das andere zum Heiligen Gral zu erklären finde ich nicht zielführend.
Nur 40% des Durchsatzes von Windows ist schon ziemlich happig, und Latenzen die in den Spitzen um den Faktor 6 länger dauern sind auch recht happig.

Deswegen frage ich ja hier nach weiteren Vergleichs Messungen,
da ich kein Windows habe kann ich die nicht selbst durchführen.

Insbesondere für brauchbare Benchmarks von SSDs spielt das schon eine Rolle. Die üblichen Messungen die man so findet beschränken sich auf die üblichen Tools unter Windows. Und ich will besser und mehr :-)

Auf jeden Scheiß werden heutzutage alle möglichen Benchmarks losgelassen und die Ergebnisse rauf und runter diskutiert, nur für SSDs findet sich nichts gescheites, obwohl es mit fio ein sehr schickes Tool gibt.
conf_t schrieb:
Ich benutze beruflich viel Wireshark. Wireshark performt auf MacOS teilweise mehr als doppelt so schnell wie unter Windows oder gar noch besser. Das war schon immer so und wird sich auch nicht ändern. Das war vor 15 Jahren mit dem IBM Chips im MAC, das war vor 10 Jahren so mit den Intel Chips im MAC und das ist heute so mit dem ARM CHips im MAC. Selbst bei deutliche schwächerer Hardware ist WIreshark wesentlich weniger Ressourcenintensiv auf MacOS als auf Windows.
Bei Linux bewegt es sich dazwischen.

Die Entwickler von Wireshark (war selbst paar Mal auf den Sharkfests und konnte mit ihnen sprechen) erklären das mit grundsätzlich Unterschieden im OS-Design und es eher "Zufall" ist, dass WIndows da so schlecht abschneidet. Sie haben explizit erwähnt, dass sie weder für das eine noch für das andere "speziell" optimiert haben, bzw. sie vor allem daran interessiert sind, dass Wireshark auf Windows ähnlich gut performent, wie auf anderen Plattformen.
Spannend, wo Wireshark Zeit braucht sind (komplexe) Filter und I/O-Graphs was eigentlich >90% reiner Userspace sein sollte, wo das OS eher wenig beeinflusst, sondern eher Compiler oder die verwendete malloc Implementation. Hast du Links/Papers zu dem Thema?

Ich habe auch einiges meiner Lebenszeit vor dem Ladebalken von Wireshark zugebracht, in den meisten Fällen weiß man an Anfang ja nicht wo nach man sucht. Und grössere Traces auf ein mal laden zu können würde auch helfen, viele kleine Splits machen Arbeit und kosten Zeit.
conf_t schrieb:
Worauf ich hinaus will ist, selbst Bechnmarkprogramme müssen durch unterschiedliche OS-Designs selbst wenn sie gleich wirken, nicht gleich sein. In der High-Level-Beschreibung sind sie noch identisch, aber im Detail nicht mehr, geht vermutlich schon bei den Bibliotheken los. Da könne noch verschiedene Layer/Stacks eine Rolle spielen und beeinflussen. Also am Ende vergleichst du immer Äpfel mit Birnen bei so einem Cross-OS Vergleich und kannst die Unterschiede zwar feststellen, aber nicht unbedingt vergleichen.

Es kann sein, dass Windows nicht so gut performt in dem Fall wie Linux, es kann sein, dass das Benchmarkprogramm unter Linux Operationen durchführt, die so unter Windows nicht möglich sind, und deshalb langsamer sind. Letztlich zählt die Reallife Performance und nicht irgendein Benchmark und da habe ich bisher wenig Klagen gehört, bei SSD-zu-SSD Operationen und Windows selbst kann ja schon seit SATA-SSDs kaum einen Vorteil aus SSDs ziehen.
Der User der die Messungen durchgeführt hat hat wohl in beiden Fällen die jeweilige aio Implementation genutzt. Vielleicht kann er ja noch was dazu sagen.

Aber andere Vergleichsmessungen wären einfach spannender.
 
Zuletzt bearbeitet:
foofoobar schrieb:
Hast du Links/Papers zu dem Thema?
Nein. Das war eine wiederkehrende, mündliche Frage aus dem Publikum und die Entwicklung haben bei der Q&A aus dem Stehgreif geantwortet. Und das letzte Sharkfest bei dem ich war war SFEU19. Aber thematisiert wurde das auf der SFEU18 im Rahmen der Vorstellung von WS 3.0
 
Zuletzt bearbeitet:
foofoobar schrieb:
da ich kein Windows habe kann ich die nicht selbst durchführen.
Keine Sorge, du kannst Windows auch ohne Lizenz installieren, dann kannst du selber testen.
 
@foofoobar die Testparameter sind in diesem Artikel beschrieben.
https://www.thomas-krenn.com/de/wiki/Fio_unter_Windows_nutzen

unter windows ist es "ioengine=windowsaio", bei linux is es "ioengine=libaio"

Man Kann das Textfile kopieren und "directory=" Pfad abändern. Für Windows die Zeilen "ioengine=libaio" in "ioengine=windowsaio" ändern.

Unter Linux kam fio mit kdiskmark mit. Unter Windows einfach hier downloaden https://github.com/axboe/fio

Mein Dank geht an @0x8100 für die Links

P.S. Mein Windows ist sauber geputztes Win10. u.a. Windows Suche deaktiviert. Da läuft minimal was im Hintergrund.
Linux Fedora 37 mit KDE Plasma

scaling_governor > shedutil >balanced

Linux

fio-job.txt
[global]
size=100m
directory=/home/zee/Dokumente/fio-tests/
thread
iodepth=32
direct=1
group_reporting
ioengine=libaio

[rand-read]
rw=randread
blocksize=4k
stonewall

[rand-write]
rw=randwrite
blocksize=4k
stonewall

[global]
size=500m
directory=/home/zee/Dokumente/fio-tests/
numjobs=4
iodepth=16
direct=1
group_reporting
ioengine=libaio

[read]
rw=read
blocksize=1M
stonewall

[write]
rw=write
blocksize=1M
stonewall
Ergänzung ()

peljotha schrieb:
IOperationen schneller. Elementory OS hat manchmal seltsame Sekunden-Verzögerungen, die das OS etwas zäh machen. Lässt sich da etwas verbessern? Andere Distribution?
Einfach https://xanmod.org/ Kernel installieren. ElementaryOS kommt mit einem sehr alten Kernel.
Unter der 6er und jetzt unter der 7er Pfeilschnell mit dem xanmod Kernel. Schneller Boot und Shutdown.
 
Zuletzt bearbeitet:
Zu Wireshark: Wireshark im userspace sollte überall nahezu gleich schnell laufen. Wo die Geschwindigkeit wirklich abweicht ist beim eigentlichem Paketfilter.

<Halbwissendisclaimer>
Für FreeBSD wurde der Berkely Packet Filter mit zero-copy buffern implementiert (laut Wikipedia 2007). Was die oder eine der flottesten Implementierungen überhaupt war. Die Linuxer haben 2014 eBPF an den Start gebracht und stetig weiterentwickelt. Weil eBPF schon so ein bisschen der geile Scheißt ist, denn man haben will, hat Microsoft das auch für Windows portiert[1] (etwa 2021). Wenn man jetzt irgendwelche Paketfilter und den Durchsatz dieser unter $OS bewerten will, sollte man dringend mit angeben ob man da BPF/eBPF nutzt, orgendwelche Legacylösungen des OS oder irgendwelche "komischen" portierten Zwischenlösungen von Drittparteien.

[1]https://cloudblogs.microsoft.com/opensource/2021/05/10/making-ebpf-work-on-windows/
</Halbwissendisclaimer>

Und irgendwann habe ich viel Zeit, Lust und am besten bezahlt mich noch Jemand, dass ich mich mal intensiv mit eBPF beschäftigen kann.. :/

Und ihr ahnt es, beim I/O-Zugriff auf Festspeicher sieht es schnell ähnlich aus. Da gibt es vom aktuellem, geilem Scheiß bis zur Legacy APIs aus der letzten Eiszeit alles. Bevor man da irgendwas in die Richtung $OS ist toll/doof formuliert muss man etwas tiefer abtauchen.

Und @foofoobar fang den Thread am besten nochmal an, oder mach ein Thread für Benchmarkwerte auf, wo gleich im Anfangspost steht welchen Benchmark man mit welchen Parametern aufrufen sollte und wie Ergebnisse zu veröffentlichen sind. Sonst wird das nur ein weiterer Fall von "wer viel misst, misst Mist".

Edit: Eigentlich müsste ein Script her, welches erstmal Infos sammelt. Also
  • Betriebssystem Version
  • Konfigurierte Energiesparzustände vom OS / Laufwerk
  • Genutzter I/O Scheduler
  • CPU / Memory
  • Laufwerk, Typ, Anschluss, Dateisystem, Belegung, Systemlaufwerk ja/nein, Smart-Werte
  • Benchmarkwerte anhand konstanter Parameter

Im Zweifelsfall ist das ganzschöner Sackgang und im Endeffekt ist die Aussage sowieso nur "Eigentlich egal, NVMe Laufwerke sind überall (mehr als) schnell genug".
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Rickmer
Piktogramm schrieb:
Zu Wireshark: Wireshark im userspace sollte überall nahezu gleich schnell laufen. Wo die Geschwindigkeit wirklich abweicht ist beim eigentlichem Paketfilter.
Ich meinte die Filter der IO-Graphs und den "Display Filter" oben in der GUI.
Den Luxus das man dort die Pakete aufzeichnet wo auch das Wireshark läuft hat man quasi nie.
Und solche Wireshark-Filter wie xyz.time > 0,1 werden wohl eher nicht (e)bpf nutzen.
Ergänzung ()

Piktogramm schrieb:
Edit: Eigentlich müsste ein Script her, welches erstmal Infos sammelt. Also
  • Betriebssystem Version
  • Konfigurierte Energiesparzustände vom OS / Laufwerk
  • Genutzter I/O Scheduler
  • CPU / Memory
  • Laufwerk, Typ, Anschluss, Dateisystem, Belegung, Systemlaufwerk ja/nein, Smart-Werte
  • Benchmarkwerte anhand konstanter Parameter

Im Zweifelsfall ist das ganzschöner Sackgang und im Endeffekt ist die Aussage sowieso nur "Eigentlich egal, NVMe Laufwerke sind überall (mehr als) schnell genug".
2-3 weitere Messungen unter Windows hätten ja erstmal meinen Verdacht erhärten oder widerlegen können.
Ergänzung ()

Rickmer schrieb:
Keine Sorge, du kannst Windows auch ohne Lizenz installieren, dann kannst du selber testen.
Was muss man dafür tun?
 
Zuletzt bearbeitet:
Schue ich mir bei Gelegenheit mal an.
 
foofoobar schrieb:
Den Luxus das man dort die Pakete aufzeichnet wo auch das Wireshark läuft hat man quasi nie.
Und solche Wireshark-Filter wie xyz.time > 0,1 werden wohl eher nicht (e)bpf nutzen.
Die Capturefilter von Wireshark funktionieren mit tcpdump und das nutzt schlussendlich BPF[1]. Gerade auf bei Remotekisten ist das unheimlich praktisch, da man gescheit Pakete filtern und ausleiten kann, ohne dass die betroffene Kiste all zu sehr in die Knie, noch all zu viel Bandbreite flöten geht.

[1]*nix Systeme. Bei Windows habe ich keine Ahnung.
 
Das sind nicht nur die Anzeigefilter selbst, die unter Windows wesentlich langsamer sind, sondern auch die Dissektoren und wohl manch anderes. Beim Filtern werden scheinbar die Dissektoren auch jedes mal neu geladen/verarbeitet, was es nicht besser macht. Da mit jedem WS Release unter 2.x und 3.x neue Dissektoren hinzukommen, ist das ein Grund, warum real und gefühlt jede WS Version in 2.x und 3.x langsamer wurde. Bei 4.x wurde scheinbar wieder etwas auf Performance getrimmt.

Ich habe hier ein 2021 MBP 14" mit dem "kleinen" 8 Core M1Pro.
Ich habe dazu hier eine Windows-Kiste mit einem R9 5900X

Im Single-Core sind für beide CPUs ähnlich und ich habe auch gerade nichts ähnlicheres zur Hand.

Teststellung:

PCAP1 Datei mit 99 MB (rd 83000 Pakete), liegt jeweils im Userspace
PCAP2 Datei mit 547 MB (rd 540000 Pakete), liegt jeweils im Userspace
Wireshark 4.0.4, vorgeladen, also Programm geöffnet, keine Datei geladen.

Systeme:
MBP 2021 14" mit M1Pro 8-Core 32 GB RAM
Ryzen 5900X, 64 GB RAM, Seagate Firecuda 520 NVMe SSD @PCIe4.0 x4



Tests:



Ryzen 5900X Windows 11 x64M1Pro MacOS 13.2.1Unterschied Faktor
PCAP1 öffnen2,3 Sekunden1 Sekunde2,3
PCAP1 IP Verbindungsfilter auf erstes Paket1,2 Sekunden< 1 Sekunde1,2-1,3


Da bei der kleinen Datei die Messungen recht schwierig sind, um die 1 Sekunde ist kaum händisch messbar, schaue ich mal nach eine größeren Datei, womit die Unterschiede sichtbarer ausfallen. Wenn man aber die Unterschiede als Prozent betrachtet ist der Unterschied deutlich.

Ryzen 5900X Windows 11 x64M1Pro MacOS 13.2.1Unterschied Faktor
PCAP2 öffnen4 Sekunden2,3 Sekunden1,7
PCAP2 IP Conversationfilter auf erstes Paket3,7 Sekunden3 Sekunden1,23
PCAP2 Expert Information3,5 Sekunden2 Sekunden1,75
PCAP2 Follow TLS Stream4 Sekunden3 Sekunden1,33


Durch die Kombination mehrerer Filter potenziert sich quasi die Wartezeit und macht der unterschiedliche Faktor am Ende viel aus.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Piktogramm
foofoobar schrieb:
kann es sein das Windows schnelle SSDs nicht richtig Auslasten kann und deswegen SSD-Benchmarks unter Windows sinnlos sind weil Windows den (heftigen) Engpass darstellt?

Hat jemand weitere Messungen zum vergleichen?


passt zur Überschrift des Threads:

Schnelle SSDs unter Windows: Perlen vor die Säue?​


Conclusio: (für Gamer und Videoediting) die Testpersonen haben blind keinen Unterschied zwischen SATA und schnelleren SSDs bemerkt:

tatsächlich hielten viele sogar das SATA-System für schneller
 
conf_t schrieb:
Durch die Kombination mehrerer Filter potenziert sich quasi die Wartezeit und macht der unterschiedliche Faktor am Ende viel aus.
Spannend, ich musste neulich mal Wireshark auf einer Windows-Kiste nutzen und das war schon recht zäh, allerdings war das ein Terminalserver mit anderen Usern drauf und unbekannter Ausstattung.
Dann kamen wohl noch zu dem eh nicht besonders tollen und schnellen Rechner noch Implementierungsprobleme unter Windows dazu.

Aber gut zu wissen das man um Wireshark unter Windows einen noch grösseren Bogen machen sollte.
Ergänzung ()

Kraeuterbutter schrieb:
Conclusio: (für Gamer und Videoediting) die Testpersonen haben blind keinen Unterschied zwischen SATA und schnelleren SSDs bemerkt:

tatsächlich hielten viele sogar das SATA-System für schneller
Na dann warten wir mal auf die ersten µ-Ruckler bei Direct Storage Spielen.
 
Zurück
Oben