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

33

Wir entwerfen derzeit unsere neuen Datenbankserver und haben einen Kompromiss gefunden, bei dem ich nicht ganz sicher bin, wie ich antworten soll.

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

Meiner Meinung nach sollte der Arbeitsspeicher für einen Datenbankserver ausreichend sein (wir haben sehr viele Daten und einige sehr große Abfragen), anstatt so schnell wie möglich. Anscheinend können wir bei 1333MHz keine 16GB Chips bekommen, daher die obigen Möglichkeiten.

Sollen wir also viel langsameres RAM oder weniger schnelles RAM bekommen?

Zusatzinformation:

Anzahl der verfügbaren DIMM-Steckplätze: 6
Server: Dell Blades-CPU: 6 Core (aufgrund der Oracle-Lizenzierung nur ein einzelner Sockel).

Josh Smeaton
quelle
12
IMO übertrifft 100% mehr RAM-Kapazität und 20% mehr RAM-Geschwindigkeit.
Joe Internet
3
Vor allem, weil es nicht einmal 20% ist;)
TomTom
Vielen Dank an alle. Da war ich mir auch ziemlich sicher, wollte aber eine Bestätigung.
Josh Smeaton

Antworten:

59

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

Skyhawk
quelle
Dies hängt natürlich von der Größe der Datenbank ab - grundlegende Details, aber dennoch wichtig.
Morg.
Ja, und Josh hat klar angegeben, dass das vorliegende Szenario "viele und viele Daten" enthält.
Skyhawk
Für einige Leute sieht eine Million Zeilen wie "viele und viele Daten" aus. Kaum ein Grund, nicht alles im Gedächtnis zu haben;)
Morg.
16

Okay, es ist sehr sehr sehr einfach:

Passt Ihre Datenbank in 48 GB RAM mit Betriebssystem und allem? wenn ja, nimm das. Andernfalls nehmen Sie 96 GB

Die Datenbankanpassung in xyz GB RAM bedeutet auch, dass sie mit Indizes, Ansichten und allem anderen übereinstimmt.

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

Morg.
quelle
5
Dies ist eine sehr wichtige Information. Wenn die Datenbank nur 5 GB groß ist und nicht viel größer werden soll, können Sie auch mit einer geringeren Menge an schnellerem RAM arbeiten.
Kibbee
13

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

TomTom
quelle
11

Auf jeden Fall großer RAM, Geschwindigkeit verdammt.

Der Zugriff auf Zufallsdaten für die RAM-Technologie aus dem 20. Jahrhundert '90 liegt unter 100 ns. Dabei werden praktisch antike Chips verwendet, die physisch nicht einmal in etwas grenzwertiges Zeitgenössisches passen.

Der Zugriff auf zufällige Daten für moderne Festplatten mit 15.000 U / min wird in Millisekunden gemessen. 100 ns ist 10 000 mal kürzer (nano -> micro -> milli) als 1 ms. Der aktuelle Arbeitsspeicher ist schneller und die Festplatte benötigt mehrere Millisekunden, um auf Daten zuzugreifen. Es ist mir egal, ob mein RAM 50.000 oder nur 30.000 Mal schneller als meine Festplatte ist, wenn ich mehr bekommen könnte.

Paweł Brodacki
quelle
5

Sie müssen Ihre Aufmerksamkeit auf einige Punkte lenken:

  • Speicherlatenz 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 letztendlich weniger Geschwindigkeit bedeutet
  • Gesamtindexdaten Das kritischste y zum Laden der gesamten Indexdaten in den Speicher. Indexdaten sind die kritischsten Daten, die Sie im Speicher benötigen (höherer Leistungseffekt).
  • Festplattengeschwindigkeit Haben Sie die DB-Daten auf der SSD gespeichert? Wenn die Antwort Ja lautet, achten Sie besonders auf die Speicherlatenz.
Nefeli
quelle
2

SPEICHERBREITE = / = GESCHWINDIGKEIT!

Die wahrscheinlich wichtigste fehlende Information ist die Speicherzeit und der CPU / FSB-Typ. Verringern Sie die Verzögerung beim Laden des CPU-Speichers um einige Zyklen, und Sie werden bei bestimmten Berechnungen die doppelte Bandbreite erreichen. Einige Datenbanken verwenden aus betriebssystem- und technischen Gründen keine großen Mengen an RAM. Welchen Datenbankserver verwenden Sie? CPU-Typ? L [123] Cache-Ebenen? Art der auszuführenden Abfragen? Größe der Datenbank?

Silberfeuer
quelle
2
-1. Tatsachenfehler in 99,9% der Fälle.
TomTom
Auf welchen Teil beziehen Sie sich?
Silverfire
2
Jede Datenbank, die größer als der Arbeitsspeicher ist, wird sofort langsamer. CPU-Zyklen sind ein Witz im Vergleich zu - sofern es sich nicht um einen ganz speziellen OLAP-Fall handelt - der eingeführten E / A-Latenz. Die meisten Datenbanken verwenden sehr viel RAM - der kleinste Server, den ich je gesehen habe, der kein Witz für eine winzige Datenbank ist, hat eine um ein Vielfaches höhere RAM-Auslastung als die durchschnittliche Workstation. Es sei denn, Sie bestehen darauf, völlig veraltete Technologien zu verwenden ("OS-Systemgrenzen"). Und weder die CPU-Geschwindigkeit noch der FSB-Typ machen einen Unterschied - Datenbanken benötigen Speicher.
TomTom
0

Bevor ich zu viel Geld für falsche Hardware ausgab, führte ich einige Tests und Analysen durch, bevor ich Hardware kaufte.

  • Denken Sie zunächst an Ihre SLA.
  • Harte Anforderungen an Leistung und Reaktionszeiten?

Ihre Wahl sollte von vielen Faktoren abhängen:

  • Was ist der Engpass bei unterschiedlichen Arbeitslasten und Nutzungen?
  • CPU, Speicher, Speicher, Netzwerk?
  • Ist es vielleicht wichtiger, mehr Geld für schnelleren Speicher als für mehr Speicher auszugeben?
  • schnellere CPU als mehr Speicher? schnelleres Netzwerk? kleinere Neugestaltung auf Software / SQL?

  • Ihre Analyse könnte auch für Entwickler, Datenbank- und Softwarearchitekten sowie SQL-Abfrage-Designer von großer Relevanz sein.

Wenn Sie Windows verwenden, können Sie leicht perfmon ausführen, um einige statische Daten auf dem derzeit ausgeführten System zu sehen, und haben möglicherweise das große Glück, eine klare Vorstellung von Ihren Anforderungen zu bekommen.

manmathan
quelle
1
Ich bin ein Entwickler und helfe bei der Abwägung dieser Entscheidung. Uns fehlt ein echter Systemadministrator, deshalb haben wir alle (6 von uns) einen Beitrag zur Diskussion geleistet. Unsere aktuellen Server sind 32-Bit-Server und aufgrund des Speicherlimits pro Prozess nicht in der Lage, sehr viel zu leisten. Unser Netzwerk / Speicher ist (sollte) für den Moment in Ordnung. Das Speicher-Backend ist ein SAN. Unsere CPU ist nie ausgelastet. Der Großteil der mit unseren Abfragen verbundenen Kosten entfällt auf E / A, was durch die Verwendung von mehr RAM entlastet werden sollte. Wir rüsten auch auf RAC auf. Wir haben eine klare Vorstellung davon, was wir brauchen. Es ist die Kleinigkeit, die fraglich ist.
Josh Smeaton