Frage Datenbankserver: Kleiner schneller RAM oder großer langsamer RAM?


Wir entwickeln derzeit unsere neuen Datenbankserver und haben einen Kompromiss gefunden. Ich bin mir nicht ganz sicher, wie ich antworten soll.

Dies sind unsere Optionen: 48 GB 1333 MHz oder 96 GB 1066 MHz.

Ich denke, dass RAM für einen Datenbankserver reichlich vorhanden sein sollte (wir haben viele und viele Daten und einige sehr große Abfragen), anstatt so schnell wie möglich zu sein. Anscheinend können wir keine 16GB-Chips bei 1333 MHz bekommen, daher die oben genannten Möglichkeiten.

Also, sollten wir viel langsamer RAM oder weniger schneller RAM bekommen?

Zusatzinformation:

Anzahl der verfügbaren DIMM-Steckplätze: 6
Server: Dell Blades CPU: 6-Kern (nur Single-Socket aufgrund Oracle-Lizenzierung).


33
2017-09-27 05:40


Ursprung


IMO, 100% mehr RAM-Kapazität schlägt eine zusätzliche 20% RAM-Geschwindigkeit. - Joe Internet
Vor allem, weil es nicht einmal 20% ist;) - TomTom
Danke an alle. Ich war mir da auch ziemlich sicher, wollte aber Bestätigung. - Josh Smeaton


Antworten:


Sie werden mit dem großen und langsamen RAM gehen wollen. Der Unterschied in der RAM-Leistung ist vernachlässigbar verglichen mit dem Unterschied zwischen RAM-Leistung und Festplattenleistung.


59
2017-09-27 06:14



Dies hängt natürlich von der Größe der Datenbank ab - Grundlegende Details, aber dennoch wichtig. - Morg.
Ja, und Josh hat klar gesagt, dass das vorliegende Szenario "viele und viele Daten" beinhaltet. - Skyhawk
Für manche Leute sieht eine Million Zeilen wie "viele und viele Daten" aus. Kaum ein Grund, nicht alles im Speicher zu haben;) - Morg.


Alles klar, es ist sehr, sehr, sehr einfach:

Passt Ihre Datenbank in 48 GB RAM mit Betriebssystem und allem? Wenn ja, nimm das. Sonst nimm 96GB

Datenbankanpassung in xyz GB von RAM bedeutet, dass es mit Indexen, Ansichten und all dem passt.

SSD-Kommentare sind völliger Unsinn, sowohl die Bandbreite als auch die Zugriffszeit sind nicht auf dem gleichen Niveau und keine SSD kann rechtfertigen, weniger RAM zu nehmen.


16
2017-09-27 07:42



Das ist eine sehr wichtige Information. Wenn die Datenbank nur 5 GB groß ist und nicht geplant ist, viel größer zu werden, können Sie auch mit einer kleineren Menge schnellerem RAM arbeiten. - Kibbee


Nur Datenbank? Abhängig von der Datenbank würde ich denken, dass der größere RAM besser wäre. Der Geschwindigkeitsunterschied ist bestenfalls minimal, aber die zusätzlichen 48 GB werden / können einen großen Unterschied machen.


13
2017-09-27 05:56





Definitiv großer RAM, Geschwindigkeit verdammt.

Der Zugriff auf Zufallsdaten für die RAM-Technologie aus dem 20. Jahrhundert liegt unter 100 ns. Das sind praktisch uralte Chips, die sich nicht mal annähernd in die Grenzen der heutigen Zeit einfügen.

Der Zugriff auf zufällige Daten für hochmoderne 15k-rpm-Festplatten wird in Millisekunden gemessen. 100 ns sind 10 000 mal kürzer (nano -> micro -> milli) als 1 ms. Das aktuelle RAM ist schneller und die Festplatte benötigt mehrere Millisekunden, um auf Daten zuzugreifen. Es ist mir völlig egal, ob mein RAM 50 000 schneller oder nur 30 000 mal schneller ist als HDD, wenn ich mehr bekommen könnte.


11
2017-09-27 06:29





Sie müssen Ihre Aufmerksamkeit in einigen Punkten beachten:

  • Gedächtnislantecy Die Speichergeschwindigkeit hängt von zwei Faktoren ab: Busgeschwindigkeit und Latenz. Üblicherweise führen Chips mit höherer Dichte zu einer höheren Latenz, was letztlich weniger Geschwindigkeit bedeutet
  • Gesamtindexdaten Das kritischste, um die gesamten Indexdaten in den Speicher zu laden. Indexdaten sind die kritischsten Daten, die Sie im Speicher benötigen (höherer Penalty-Effekt in der Leistung).
  • Festplattengeschwindigkeit Haben Sie die DB-Daten in SSD gespeichert? Wenn die Antwort Ja ist, sollten Sie besonders auf die Speicherlatenz achten.

4
2017-09-27 06:40





Speicherbandbreite = / = Geschwindigkeit!

Wahrscheinlich ist das wichtigste Stück fehlender Informationsinformation die Speicherzeitsteuerung und der CPU / FSB-Typ. Verringern Sie die Ladeverzögerung der CPU-Speicher um ein paar Zyklen, und Sie werden in bestimmten Berechnungen die doppelte Bandbreite sprengen. Einige Datenbanken verwenden aus Betriebssystem- und technischen Gründen keine großen Mengen an RAM. Welchen Datenbankserver benutzen Sie? CPU-Typ? L [123] Cache-Ebenen? Art der auszuführenden Abfragen? Größe der Datenbank?


2
2017-09-27 06:26



-1. Faktisch falsch in 99,9% der Fälle. - TomTom
Auf welchen Teil beziehen Sie sich? - Silverfire
Jede Datenbank, die größer als der Arbeitsspeicher ist, wird sofort langsamer. CPU-Zyklen sind ein Witz im Vergleich zu - wenn es sich nicht um einen ganz besonderen OLAP-Fall handelt - die eingeführte IO-Latenzzeit. Die meisten Datenbanken verwenden große Mengen von RAM - die kleinste Datenbank SERVER, die ich gesehen habe, ist kein Witz für eine kleine Datenbank ist viel größer in RAM-Nutzung als die durchschnittliche Arbeitsstation. Es sei denn, Sie bestehen darauf, humble veraltete Technologie zu verwenden ("os system limits"). Und weder CPU-Geschwindigkeit noch fsb-Typ machen einen Unterschied - Datenbanken brauchen Speicher. - TomTom


Bevor ich zu viel Geld für falsche Hardware ausgegeben habe, würde ich einige Tests und Analysen durchführen, bevor ich Hardware kaufe.

  • Denken Sie zuerst an Ihr SLA.
  • irgendwelche harten Anforderungen an die Leistung und Reaktionszeiten?

Ihre Wahl sollte von vielen Faktoren abhängen:

  • unter verschiedenen Arbeitsbelastungen und Nutzungen, was ist eigentlich der Flaschenhals?
  • CPU, Speicher, Speicher, Netzwerk?
  • Ist es vielleicht wichtiger, mehr Geld für schnellere Speicherung auszugeben als mehr Speicher?
  • schnellere CPU als mehr Speicher? schnelleres Netzwerk? geringfügiges Redesign auf Software / SQL?

  • Ihre Analyse könnte auch sehr relevant für die Entwickler, Datenbank- und Softwarearchitekturen und SQL-Abfrage-Designer sein .....

Wenn Sie Windows verwenden, können Sie problemlos permmon ausführen, um einige Statiken auf dem aktuellen laufenden System zu sehen, und vielleicht haben Sie das Glück, eine klare Vorstellung von Ihren Bedürfnissen zu bekommen.


0
2017-10-27 22:59



Ich bin Entwickler und helfe bei dieser Entscheidung mit. Uns fehlt ein echter sys-Admin, also haben wir alle (6 von uns) einen Beitrag zur Diskussion geleistet. Unsere derzeitigen Server sind 32 Bit und können aufgrund des Speicherlimits pro Prozess nicht viel tun. Unser Netzwerk / Speicher ist (sollte) für den Moment in Ordnung. Das Speicher-Back-End ist ein SAN. Unsere CPU ist nie ausgereizt. Die meisten Kosten, die mit unseren Abfragen verbunden sind, sind I / O, was durch die Möglichkeit, mehr RAM zu verwenden, erleichtert werden sollte. Wir aktualisieren auch auf RAC. Wir haben eine klare Vorstellung davon, was wir brauchen. Es ist die Minutia, die fragwürdig ist. - Josh Smeaton