6 Stimmen

Sind Solid-State-Laufwerke gut genug, um sich keine Sorgen mehr über IO-Engpässe auf der Festplatte zu machen?

Ich habe ein Proof-of-Concept-Programm, das einige Interprozess-Kommunikation einfach durch Schreiben und Lesen von der Festplatte durchführt. Ja, ich weiß, das ist wirklich langsam, aber es war der einfachste Weg, die Dinge zum Laufen zu bringen. Ich hatte immer geplant, zurückzukommen und diesen Teil des Codes durch einen Mechanismus zu ersetzen, der die gesamte IPC (Interprozesskommunikation) im RAM durchführt.

Glauben Sie, dass dieser Engpass mit dem Aufkommen von Solid-State-Disks vernachlässigbar werden wird?

Anmerkungen: Es handelt sich um eine in C# geschriebene Serversoftware, die einige in FORTRAN geschriebene Bare-Metal-Bibliotheken zur Zahlenverarbeitung aufruft.

2voto

MSalters Punkte 166675

Nein. Aktuelle SSDs sind als Festplattenersatz konzipiert. Jede Ebene, vom SATA-Controller bis zum Dateisystemtreiber, behandelt sie als Speicher.

Dies ist kein Problem der zugrunde liegenden Technologie, des NAND-Flash. Wenn NAND-Flash direkt im Speicher abgebildet wird und ein rotierendes Protokollspeichersystem anstelle eines auf benannten Dateien basierenden Dateisystems verwendet, kann es recht schnell sein. Das grundlegende Problem besteht darin, dass NAND-Flash nur bei Blockaktualisierungen eine gute Leistung erbringt. Aktualisierungen von Datei-Metadaten verursachen teure Lese-Änderungs-Schreibvorgänge. Außerdem sind NAND-Blöcke viel größer als typische Festplattenblöcke, was der Leistung ebenfalls nicht zuträglich ist.

Aus diesen Gründen wird die Zukunft der SSDs in besser gecachten SSDs liegen. DRAM wird den Overhead eines schlechten Mappings verbergen und ein kleines Supercap-Backup wird es der SSD ermöglichen, Schreibvorgänge schneller zu übertragen.

0voto

tomjen Punkte 3685

Nein, leider nicht. Sie machen es aber interessanter: SSD-Laufwerke haben sehr schnelle Lesezeiten und keine Synchronisationszeit, aber ihre Schreibvorgänge sind fast so langsam wie bei normalen Festplatten. Das bedeutet, dass Sie die meiste Zeit lesen wollen. Wenn Sie jedoch auf das Laufwerk schreiben, sollten Sie so viel wie möglich auf dieselbe Stelle schreiben, da SSD-Laufwerke nur ganze Blöcke auf einmal schreiben können.

0voto

Robert Casto Punkte 526

Wie wäre es, wenn Sie ein Ram-Laufwerk anstelle der Festplatte verwenden? Sie müssten dann nichts neu schreiben. Zeigen Sie einfach auf ein anderes Dateisystem. Windows und Linux haben beide solche Systeme. Vergewissern Sie sich, dass Sie viel Arbeitsspeicher auf dem Rechner haben, und erstellen Sie eine virtuelle Festplatte mit genügend Speicherplatz für Ihre Verarbeitung. Ich habe dies für ein System getan, das mehrere Protokolle an einem Netzwerkanschluss abhörte. Ich wusste nie, welches Paket ich bekommen würde, und es waren zu viele Daten, um sie im Speicher zu behalten. Ich schrieb sie auf das RAM-Laufwerk, und wenn etwas fertig war, verschob ich es und ließ es einen anderen Prozess vom RAM-Laufwerk auf eine physische Festplatte holen. Auf diese Weise konnte ich auch mit stark ausgelasteten Netzwerkkarten der Serverklasse mithalten. Viel Glück!

0voto

Loren Pechtel Punkte 8729

Das sollten Sie sich merken:

Wenn die Kommunikation häufige Nachrichten beinhaltet und auf demselben System stattfindet, erhalten Sie eine sehr gute Leistung, da Windows die Daten gar nicht erst herausschreibt.

Ich musste einmal darauf zurückgreifen und stellte fest, dass das Fahrlicht NICHT Solange die Daten geschrieben werden, ist das System überhaupt nicht eingeschaltet.

-2voto

iBiryukov Punkte 1732

aber es war der einfachste Weg, die Dinge zum Laufen zu bringen. Ich finde, es ist viel billiger, einmal mit dem eigenen Kopf gut zu denken, als den Prozessor Millionen Mal vergeblich denken zu lassen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X