Kann SSD-Raid schneller sein als Ramdisk?

9

Eine typische SSD hat also eine Lesegeschwindigkeit von 250 - 500 MB / Sekunde. Und ein Widder wird ungefähr 10x mehr haben.

Meine Frage ist: Können 4 ssds mit raid-0 aus irgendeinem Grund schneller sein als ein einzelner RAM-Speicherblock?

Ich werde entweder mit viel RAM und Ramdisk gehen, oder 4 ssds mit raid-0. Welche ist schneller?

Koray Tugay
quelle

Antworten:

12

Eine typische SSD hat also eine Lesegeschwindigkeit von 250 - 500 MB / Sekunde. Und ein Widder wird ungefähr 10x mehr haben.

Auf welche Art von RAM beziehen Sie sich? Sicherlich nicht etwas, das in letzter Zeit in PCs gebräuchlich war, wie es scheint.

DDR3 SDRAM kann Ihnen trivialerweise eine Übertragungsrate von ungefähr 10 GB / s geben (dafür benötigen Sie DDR3-1333) und erreicht derzeit eine maximale Übertragungsrate von ungefähr 17 GB / s für DDR3-2133.

Angenommen, Sie streifen vier SSDs ab, die 500 MB / s liefern können, und das Gesamtsystem kann dies verarbeiten (kein Buskonflikt, das System ist immer noch E / A-gebunden usw.). Dies ergibt einen theoretischen maximalen Durchsatz von 2 GB / s. Der 4xSSD verliert um fast den Faktor 10.

DDR3 SDRAM hat eine Latenz im Bereich von 10 ns. Mit einer guten SSD erhalten Sie möglicherweise 100.000 IOPS (Tops), was einer Latenz von 10.000 ns entspricht. (Zum Beispiel spezifiziert der Intel 530 ein 41k-IOPS für zufällige 4k-Lesevorgänge, was eine Latenz von fast 25.000 ns ergibt.)

Entfernen Sie vier schnelle SSDs und ignorieren Sie den gesamten Overhead. Möglicherweise erhalten Sie 400.000 IOPS oder 2.500 ns Latenz. Der 4xSSD verliert um den Faktor 250.

Die Daten von der SSD müssen irgendwohin gehen, und dieses "irgendwo" wird RAM sein. Die CPU kann es von dort abrufen, aber es kommuniziert nicht mehr direkt mit der SSD als direkt mit einem sich drehenden Festplattenlaufwerk.

Wenn wir davon ausgehen, dass Sie auf der SSD nicht unter Buskonflikten leiden, ist es sinnvoll, dasselbe für den RAM anzunehmen. Dies führt zu der Schlussfolgerung, dass eine SSD nach einer dieser Metriken im Vergleich zu DDR3-SDRAM äußerst langsam ist.

RAM hat andere Nachteile. Selbst im Vergleich zu SSDs ist es pro Gigabyte sehr teuer und benötigt konstante Energie, um seinen Inhalt zu behalten. Außerdem funktioniert eine RAM-Disk nicht ganz so wie RAM, da es sich um ein Softwarekonstrukt im Betriebssystem handelt. Sie sollten immer noch den größten Teil des Leistungsvorteils von RAM erhalten, verlieren jedoch die gleiche Menge an RAM, was dazu führen kann, dass das System häufiger auf einen Austausch zurückgreifen muss (was ein Todesurteil für die Leistung ist), und dies wird wahrscheinlich nicht der Fall sein Geben Sie die gleiche Leistung wie bei rohem RAM.

ein CVn
quelle
Ramdisk ist es dann ..
Koray Tugay
1
@KorayTugay Wenn Sie die absolut höchste Leistung benötigen, sollten Sie sich für eine RAM-Disk entscheiden. Beachten Sie jedoch, dass eine RAM-Disk nicht ganz so funktioniert wie RAM und ihre eigenen Nachteile hat, nicht zuletzt den Preis . (Auch wenn ich die Annahme schätze, empfehle ich Ihnen, einen Tag oder so zu warten, bevor Sie eine Antwort annehmen, falls jemand anderes eine noch bessere Antwort liefert.)
ein CVn
@KorayTugay: Im Allgemeinen die Antwort auf "Benötige ich eine RAMDisk?" ist fast immer "Nein. Wenn Sie es wirklich brauchen würden, würden Sie genug wissen, dass Sie nicht fragen müssten." Was machst du, das dich denken lässt, dass du es brauchst?
Afrazier
@afrazier Entwicklung / Test mit einer riesigen Datenbank und ich greife oft darauf zu und viele Daten werden daraus abgerufen. Ich werde die Datenbank im Widder behalten. Ich mache das 8 10 Stunden am Tag und das Warten auf 4 5 Sekunden scheint nach einiger Zeit zu lang. Ich muss die Datenbank schneller treffen.
Koray Tugay
5
Jedes kompetente DBMS behält so viel DB wie möglich im RAM. Wenn Ihre Datenbank klein genug ist, um in eine RAM-Disk zu passen, ist sie klein genug, um nur in RAM zu passen. Wenn Sie Ihr DBMS mit einer SSD richtig optimieren, erhalten Sie die Leistung, die Sie suchen. Für die lokale Entwicklung können Sie sogar Dinge wie das Zurückschreiben von Caching und weniger Sorgen um ACID nutzen. Eine RAM-Disk kämpft gegen das System.
Afrazier
4

Die eigentliche Ursache für die "Nein" -Antwort ist nicht nur der Unterschiedsvergleich zwischen den beiden, sondern auch, weil das Betriebssystem die von der SSD gelesenen Daten schließlich zwischenspeichert. Dies wird in Ihrem RAM zwischengespeichert . Somit bedeutet ein Blocklesen von der SSD auch ein Blockschreiben in den RAM. Immer.

Aus diesem Grund sind die RAM-Festplatten auch in sehr speziellen Hardwarekombinationen schneller (z. B. wurde eine sehr schnelle SSD mit einem sehr langsamen RAM kombiniert).

Peter - Setzen Sie Monica wieder ein
quelle
1
Dies ist eigentlich die beste Antwort.
ChrisInEdmonton
sudo zfs set primarycache=none tankDa geht Ihr RAM-basierter Cache. (Vorausgesetzt natürlich, Sie verwenden ZFS.)
ein CVn
@ MichaelKjörling Das stimmt, und selbst bei Nicht-ZFS-Konstruktionen gibt es Möglichkeiten, den Lese-Cache zu deaktivieren. Aber selbst in diesem Fall handelt es sich bei einem Aufruf von $ read () $ tatsächlich um eine Kopie von der SSD in den RAM. Sie können dies nicht vermeiden, außer wenn Sie die Daten irgendwie direkt in den CPU-Cache lesen (was auch bedeutet, dass Sie den DMA irgendwie vermeiden), AMD-CPU (und möglicherweise Intel) haben einen integrierten Speichermanager, ich denke, ihre leicht modifizierte Version könnte das irgendwie tun. Aber auch in diesem Fall müsste die CPU geändert werden.
Peter - Wiedereinstellung Monica
3

Um Ihre eigentliche Frage zu beantworten: Nein. RAM hat eine Größenordnung mehr Bandbreite und eine Größenordnung weniger Latenz. Es ist nicht einmal in der Nähe.

Um die Frage zu beantworten, die Sie nicht stellen: Was Sie vorhaben, ist eine schlechte Idee, es sei denn, Sie haben einen ganz bestimmten Anwendungsfall, der diese Art von Bandbreite erfordert. Wenn Sie diese Geschwindigkeit wirklich benötigen, ist der Erwerb einer PCIe-basierten SSD (wie eines ioDrive oder eines Intel 910) viel schneller als eine Tüte SATA-SSDs in RAID-0.

Jede aktuelle SSD wird für Verbraucher und Enthusiasten schnell genug sein, um den Engpass zu schaffen.

afrazier
quelle
Tatsächlich ist die DDR3-Latenz nicht um eine Größenordnung niedriger als die einer SSD. Es ist drei bis vier Größenordnungen niedriger. Siehe meine Antwort für einige tatsächliche Zahlen. (Der Bandbreitendifferenz liegt jedoch definitiv im Stadion.)
Ein CVn
Die Latenz ist nicht wichtig, da die E / A in Blöcken erfolgt. Zumindest in 4K-Blöcken. Bandbreite ist wichtig.
Peter - Wiedereinsetzung Monica
@PeterHorvath: Latenz ist bei SSDs immer noch eine große Sache. Schauen Sie sich alle Untersuchungen und Benchmarks zur Konsistenz und zu den stotternden Problemen an, die frühe SSDs hatten. Und wie Michael Kjörling erwähnte, ist die RAM-Latenz um mehrere Größenordnungen niedriger als bei SSD. Die Latenz in Lx-Caches ist noch erheblich geringer, und die Latenz der CPU-Register ist noch geringer. Und alles ist wichtig für die Leistung.
Afrazier
1

Der Arbeitsspeicher ist immer schneller als das periphere Bussystem (wie SATA).

Aber wenn Sie es mit einer RAM-Disk zu tun haben, haben Sie es nicht nur mit RAM allein zu tun. Es gibt auch eine Reihe von Software (das Dateisystem und die Gerätetreiber), die berücksichtigen müssen, dass der Roh-RAM in etwas "konvertiert" wird, das das Betriebssystem als Festplattenspeicher betrachtet.

Wie schnell eine RAM-Disk wirklich sein wird, hängt von der Qualität dieser Software ab.

Allerdings: Normalerweise sollte es immer noch um ein Vielfaches schneller sein als die schnellste Speicherlösung, die Sie an das Motherboard anschließen können.

Es mag einige Eckfälle geben, in denen bestimmte Verwendungsmuster den Unterschied kleiner oder fast null machen, aber ohne genauere Angaben darüber, was Sie mit einem solchen System tun werden, ist es unmöglich zu sagen, ob dies auf Ihre Situation zutrifft.

PS Bedenken Sie, dass eine RAM-Disk flüchtig ist. Nach dem Start des Computers müssen Sie ihn zunächst mit Daten laden. Beim Herunterfahren des Computers müssen Sie den Inhalt speichern (falls Sie ihn für den nächsten Lauf benötigen). Wenn das System abstürzt, verlieren Sie die RAM-Disk, um etwas zu speichern.
Dies müssen Sie berücksichtigen, insbesondere wenn Sie häufige Neustarts erwarten. Das Speichern / Neuladen des RAM-Disk-Inhalts ist möglicherweise nicht trivial.

Tonny
quelle
Ich werde meine Datenbank in RAM behalten.
Koray Tugay