News I/O-Scheduler: Dynamic Load Balanced Queuing beschleunigt SSDs

MichaG

Redakteur
Teammitglied
Registriert
Juli 2010
Beiträge
12.856
Erst durch viele parallele Zugriffe kommen SSDs mit NAND-Flash-Speicher in Fahrt. I/O-Scheduler sorgen dafür, dass Anfragen mit Hinblick auf möglichst hohen Datendurchsatz abgearbeitet werden. Das von koreanischen Forschern vorgestellte Dynamic Load Balanced Queuing (DLBQ) soll dabei noch effektiver vorgehen.

Zur News: I/O-Scheduler: Dynamic Load Balanced Queuing beschleunigt SSDs
 
Hört sich nach einer Technik an die Lebensdauer der Speicherchips auf kosten der Geschwindigkeit zu opfern.
 
Nein, vielmehr werden die Anfragen, die sich in der Warteschlange befinden neu angeordnet um Zugriffe zu optimieren.
 
ich dachte das macht AHCI bereits. und das mehr Speicher bessere Performance bei SSDs bringt ist ja fast schon seit 8 Jahren klar., da hatte man dann gerne noch etwas Over Provisioning

Sollen besser mal Load Balancing im real life auf die Strassen bringen, damit das Navi auch was taugt
 
Zuletzt bearbeitet:
Topflappen schrieb:
Hört sich nach einer Technik an die Lebensdauer der Speicherchips auf kosten der Geschwindigkeit zu opfern.
Lebensdauer haben die NANDs doch in aller Regel mehr als genug und wieso sollte die Art der Verteilung der Zugriffe die Lebensdauer der Speicherchips beeinträchtigen?

Wichtiger wäre mal vor allem für die Client Versionen von Windows eine ordentlich Überarbeitung des I/O Subsystems! Wie sehr das System gerade auf diese Werte Einfluss hat, sieht man im Review der Intel Optane bei TweakTown, die mit 488MB/s bei CDM 4k QD1 am i7-6700K@4,7Ghz unter Windows Server 2008R2 gemessen wurde, schon am System mit dem i7-7700K@5GHz und Windows Server 2012R2 sind es nur 415,8MB/s und auch sequentiell dann minimal weniger. Bei den 4k QD1 lesend fallen die Latenzen des System immer besonders auf und bei der Optane mit ihrem 3D XPoint welches eine sehr viel geringere Latenz als NANDs hat, zeigen sich die Latenzen des Systems noch mal viel dramatischer. So waren es auf dem von Intel für den Review gelieferten System nur 304,2MB/s und auf dem normalen "TweakTown's high-performance Z270 test system" 365,8MB/s, wobei diese beiden Testsysteme mit Win 10 liefen und der Z270@5GHz offenbar auch der gleiche Rechner ist, der mit Win Server 2012R2 dann 415,8MB/s geschafft hat, also immerhin fast 14% mehr nur aufgrund der Version von Window.
 
hä, wie was, also ich hatte gerade einen Artikel bei dem Windows 10 im Gegensatz zu den anderen OS am meisten von SSDs profitierte, muss mal gucken ob ich den Link wieder finde

Server 2012R2 ist eigentlich Windows8.1

http://winfuture.de/news,88674.html

Sind die Dinger da eigentlich übertaktet?..
Also da wundert mich nix...
 
Zuletzt bearbeitet:
Stellen sich mir die folgende Fragen.

Als Update für vorhandene SSD`s oder nur gegen Geld auf neuen SDD`s zu haben?

Auf Kosten der Langlebigkeit der Speicherzellen oder Mehrarbeit des Controllers?
 
keine Ahnung, ich hab gestern mein altes System auf S3 und HDD downgegraded. Dank 8 GB Speicher war eine SSD irgendwie für mein Userverhalten nicht wirklich nötig.
 
Pitt_G. schrieb:
hä, wie was, also ich hatte gerade einen Artikel bei dem Windows 10 im Gegensatz zu den anderen OS am meisten von SSDs profitierte, muss mal gucken ob ich den Link wieder finde
Das sind aber alles High-Level Bechmarks, CDM ist dagegen eher Low-Level und wird weniger von anderen Optimierungen des OS beeinflusst die bessere High-Level Ergebnisse produzieren.

user_xy schrieb:
Als Update für vorhandene SSD`s oder nur gegen Geld auf neuen SDD`s zu haben?
Ohne jetzt das Paper gelesen zu haben, würde ich mal vermuten das es um Routinen der FW der SSD geht und wie diese eben NCQ umsetzt, also die Reihenfolge und Parallelität der Abarbeitung ausstehender Befehle optimiert.

user_xy schrieb:
Auf Kosten der Langlebigkeit der Speicherzellen oder Mehrarbeit des Controllers?
Wieso sollte die Reihenfolge der Zugriffen einen Einfluss auf die Haltbarkeit der Speicherzellen haben? Mehrarbeit für den Controller könnte es aber durchaus bedeuten, wenn der Algorithmus aufwendiger ist der entscheidet was wann gemacht wird. Für Heimanwender ist das aber irrelevant, da hier kaum höhere QD auftreten, zumeist stehen ein oder zwei Befehle gleichzeitig an und da gibt es dann auch nicht viel zu optimieren.
 
Holt schrieb:
Ohne jetzt das Paper gelesen zu haben, würde ich mal vermuten das es um Routinen der FW der SSD geht und wie diese eben NCQ umsetzt, also die Reihenfolge und Parallelität der Abarbeitung ausstehender Befehle optimiert.

Das Verfahren versucht dafür zu sorgen, dass gute Kombinationen an Befehlen an die SSD übermittelt werden und diese dann per NCQ schneller abgearbeitet werden können.

Das Ganze wird durch das Betriebssystem realisiert und somit lassen sich eine Werte nur schätzen bzw. nähren. (Auslastung eines Channels usw. Des Weiteren wird im Artikel davon ausgegangen, dass bekannt ist wo welche LBA liegt.)
 
Zuletzt bearbeitet:
CIG hat letztens noch erwähnt, dass sie auch an so einem I/O Scheduler für Star Citizen arbeiten würden um so Inhalte schneller streamen zu können falls das Spiel auf einer SSD installiert ist.
Wäre natürlich super, wenn Spieleentwickler sich um sowas irgendwann nicht mehr selbst kümmern müssten und das von MS in's Betriebssystem integriert würde.
Soweit ich weiß hat Crytek damals zu farCry Zeiten auch einen eigenen Memory-Acclocator geschrieben weil der von Windows nicht gut genug war. Sie haben den von FreeBSD genommen und modifiziert. Erst jetzt ist der von Windows gut genug, sodass sie den BSD-Allocator wieder entfernen konnten.

Die Erfahrung zeigt also, dass wir wahrscheinlich noch ein Weilchen warten müssen, bis so ein verbesserter IO Scheduler in Windows Einzug halten wird. Bis dahin müssen sich Softwareentwickler, allen voran Spieleentwickler, wohl noch selbst behelfen.
 
Ok, dann müsste die SSD ja ähnlich wie eine SMR HDD Informationen über die interne Geometrie liefern. Aber auch dies wäre für Heimanwender wegen der dort geringen QDs einfach irrelevant. Bevor man sowas bei Windows einbaut, gäbe es genug andere Stellen wo man das I/O Subsystem von Windows optimieren könnten und sollte.
 
Für den idealen Fall müsste die SSD die Informationen liefern. In den Artikel werden dafür Annahmen getroffen und die geschätzten Antwortzeiten mit den realen verglichen und entsprechend optimiert.

Das Ganze dürfte sich für Enduser aktuell nur selten lohnen.
Ergänzung ()

noxon schrieb:
CIG hat letztens noch erwähnt, dass sie auch an so einem I/O Scheduler für Star Citizen arbeiten würden um so Inhalte schneller streamen zu können falls das Spiel auf einer SSD installiert ist.

Das Problem in den Fall ist, dass der Scheduler nicht tief genug im System steckt.
 
Wie sieht das eigentlich mit I/O Scheds bei windows aus? Bei Linux/Android kann ja jeder seinen bevorzugten in den Kernel einbauen, voilà ein neuer da. Gibt auch recht viele die da selbst was zusammen gemodet haben.

Pitt_G. schrieb:
Sollen besser mal Load Balancing im real life auf die Strassen bringen, damit das Navi auch was taugt
Die Einzige Chance das zu verwirklichen besteht darin wenn Jedes Auto jederzeit seine Position und das Ziel der verwaltungszentrale sendet. Da würden wieder alle wegen Privatsphäre rummeckern.
 
Es deutet sich an, dass das Potenzial der Technik mit der Anzahl an Speicherchips korreliert: Sind mehr Speicherchips vorhanden, können die Anfragen besser verteilt werden.
Dann müssen die Daten aber auch entsprechend fragmentiert vorliegen, oder? Das sollte man ja bei HDDs vermeiden. Werden SSDs schon so zufällig beschrieben?
 
Fragmentierung ist eine Sache des Filesystems und bestimmt nur, auf welche LBAs und über wie viele LBAs mit einem Befehl zugegriffen wird. Die interne Verteilung der Daten über die NANDs regelt jeder SSD Controller selbst und davon erfährt der Host auch nichts, zumal sich diese auch ständig ändert, z.B. weil Refreshs nötig sind oder Wear Leveling ausgeführt wurde. Daher ist das ganze Thema auch Mist, wenn es sich auf den Host bezieht. Natürlich verteilen die SSD Controller Daten die mit langen Zugriffen, also solche über viele LBAs geschrieben werden, dann über die NAND Dies um eine möglichst hoch Performance zu erreichen. Mit Fragmentierung hat das aber rein gar nichts zu tun.
 
Zurück
Oben