RAM-Disk vs. SSD

C

CPU-Bastler

Gast
Eine Datenbankanwendung brauchtr sehr viel Zeit beim Selektieren von Daten. an der Datenbak kann ich nichts machen. Das Programm wurde vor Jahren geschrieben, es gibt keinen Quellcode und keinen der sich damit auskennt. Aber das System läuft und wird genutzt.
Es wird ein i7 (Haswell) mit 32 GB RAM und 1 TB SSD (Evo-850) genutzt. OS ist Win10-64-Bit.

Damit das Arbeiten schneller geht möcht ich die Datenbank in eine RAM-DISK kopieren und dort öffnen. Die RAM-Disk sollte deutlich schneller als jede SSD sein.

Lohnt sich der Aufwand, oder ist der Geschwindigkeitszuwachs nicht der rede Wert?
 
welcher aufwand ?

ram-disk erstellen , testen , was dauert das , 5 minuten ?
 
Welches DBMS ist das und wie groß ist die DB? mysql kannst du massig RAM zuweisen, dann wird sowieso alles im RAM ausgeführt.
 
Wer, wie, wo, was, etc..

Ohne genauere Daten/ Infos wird dir da wohl keiner grossartig helfen können.

Wie wärs denn mal eben eine RAM-Disk zu erstellen und dann selber zu testen. Dürfte wahrscheinlich schneller gehen als wenn wir weiter bei dir in der Nase nach Daten/ Infos prokeln und du sie uns Stück für Stück mitteilst.
 
  • Gefällt mir
Reaktionen: areiland
Es ist eine geschlossen Datenbank. Keine Ahnung welches System (MySQL, Access, usw). Ausprobieren geht nicht so einfach, weil die DB mit anderen Programme interagiert. Das ganze mal soeben schnell ausprobieren geht nicht. Es handelt sich um ein Produktiv-System und keine Spielerei.
 
Mein Tip hierzu ist eine zusätzliche PCI-Karte (NVME) mit hinreichend Speicher für die DB.

Nachtrag wegen Produktivsystem: ECC-Speicher sollten dann auf dem Server auch gesteckt sein.
 
primocache
romex software
60 tage testversion

klone das ganze auf ein testsystem, und mit DEM machst deine versuche.
 
Eine PCI-Karte mit NVME ist auch nur eine SSD. Nur halt anders angebunden (ohne SATA-Schnittstelle).

Gibt es keine Fausformel RAM-Disk ist x mal schneller als SSD (SATA) - oder RAM-Disk lohnt bei NVME nicht?
 
Auch mit einem Produktiv-System kann man testen. Stichwort ist Backup/ Image. Das ist innerhalb kurzer Zeit erstellt und innerhalb kurzer Zeit, wenn dein Vorhaben scheitern sollte, auch wiederhergestellt.

Selbst das lahmarschige DDR3-RAM-System hier liest/ schreibt mit ca. 35.000- 30.000MB/s in/ aus dem RAM. Eine via PCIe 3.0 x4 angebundene M.2 SSD wie z.B. die Samsung 960 Evo schafft nur ca. 3.500MB/s bzw. ca. 2.000MB/s. Jetzt hast du einen Versuch frei um zu erraten was wohl schneller ist. In wie weit dein System, deine DB davon profitiert/ profitieren kann, wissen wir nicht ... und noch einmal nach Daten/ Infos prokel ich nicht. ;)
 
Zuletzt bearbeitet von einem Moderator:
Gibt keine Faust-Formel, weil das schwer von der Art des Zugriffs abhängt.
Am Ende erledigt das, was die RamDisk erledigen soll ja sowieso der Datenträger-Cache von Windows.
Nämlich viel gebrauchte Daten (sprich die DB) im Ram vorzuhalten.
 
  • Gefällt mir
Reaktionen: areiland
Danke für die vielen Antworten. Ich werde mal mit den Chef reden. Vieleicht hat der noch die Telefonnummer vom Programmierer.
 
Kein ECC-RAM, kein RAID (1) für die SSD und kein Testsystem vorhanden? Hoffentlich läuft dort nichts wichtiges drauf!

Auch eine Intel Optane-SSD könnte was bringen, die Zugriffszeiten hier sind im Mittel allen anderen PCIe-SSDs überlegen. Ob das was bringt muss dir jedoch der Programmierer sagen - kann auch im Single-Thread-Limit der CPU liegen.

AdoK schrieb:
Selbst das lahmarschige DDR3-RAM-System hier liest/ schreibt mit ca. 35.000- 30.000MB/s in/ aus dem RAM.
Nur wenn es auf hohen Durchsatz ankommt. Die Zugriffszeiten dürften bei einer Datenbank die größere Rolle spielen und da ist jede SSD noch weiter weg - allerdings ist eine RAM-Disk langsamer als gewöhnliche Daten im RAM, muss erst noch durch den Layer vom RAM-Disk-Treiber.
 
ja, das ist nix als irgendein 08/15 pc, der als produktivsystem verwendet bzw mißbraucht wird, aber eben im grunde nur eine homeuser kiste.
nun, erst wenn der schaden aufgetreten ist, wird sich wohl die weisheit einstellen.
 
CPU-Bastler schrieb:
Ausprobieren geht nicht so einfach, weil die DB mit anderen Programme interagiert.

Leg eine RAM Disk an, kopiere die DB und setzte auf den alte Pfad eine "Junction".
Sind wenige Sekunden in denen die DB kurz nicht erreichbar ist, du kannst alles vorbereiten. Nur während dem setzen der Junction darf kein Zugriff drauf sein.

Das Problem an den meisten RAM Disks ist dass die ganz tolle Schreib-/Lesewerte schaffen, aber die Treiber meistens so schei*e sind dass die Latenz gegenüber einer normalen SATA SSD sogar hoch geht.
 
Zurück
Oben