Wie viel Speicher muss auf einem dedizierten Datenbankserver für das Betriebssystem reserviert werden?

38

Angenommen, Sie haben explizit einen dedizierten Server für Datenbankfunktionen - wie viel Speicher sollten Sie für das Betriebssystem reservieren?

Mir ist klar, dass dies abhängig vom jeweiligen Betriebssystem, der jeweiligen Datenbanksoftware usw. wahrscheinlich etwas variieren wird. Da der Arbeitsspeicher für die Datenbankleistung jedoch so wichtig ist, möchte ich, dass die Datenbank den maximal angemessenen Arbeitsspeicher aufweist, ohne das Host-Betriebssystem zu beeinträchtigen.

Damit

  • Was ist eine gute Faustregel für den Anfang?
  • Auf welche Indikatoren oder Leistungsindikatoren sollten wir achten, um festzustellen, ob wir zu weit gegangen sind und das Host-Betriebssystem irgendwie von der Datenbank ausgehungert wird?
Jeff Atwood
quelle
habt ihr jemals diese einstellungen geändert? Was hat Ihnen Ihre Profilerstellung gesagt?
Jcolebrand
@jcole derzeit nichts hinzuzufügen; Wir reservieren normalerweise 4 - 6 GB für das Betriebssystem, was ein bisschen konservativer ist, als ich es gerne hätte
Jeff Atwood

Antworten:

30

Angenommen, Windows und SQL Server ...

Es gibt zwei Denkrichtungen.

  1. Belassen Sie 2-4 Gigs für Windows (abhängig davon, was neben SQL Server installiert ist).
  2. Lassen Sie 10% Ihres verfügbaren Speichers frei. Wenn Sie über 64 Gigs erreichen, wird dies eine verrückt große Menge an Speicher für das Betriebssystem, die es wahrscheinlich nicht benötigt.

Persönlich bin ich in der ersten Gruppe. Windows benötigt normalerweise nur 2-4 Gigs, manchmal bis zu 6.

mrdenny
quelle
2
Stimmen Sie mit 2 ish gb RAM für das Betriebssystem überein.
Jcolebrand
Ich stimme auch zu. Normalerweise belasse ich 2 GB für das Betriebssystem und sorge auch für zusammenhängenden Speicherplatz für Auslagerungsdateien. Natürlich kann Ihr Kilometerstand variieren. Am besten konfigurieren Sie die Einstellung, überwachen die Leistung und nehmen bei Bedarf vorsichtige Änderungen vor.
Matt M
2
@matt richtig, aber was genau ist am besten zu überwachen, wenn man sich "Hungere ich das Betriebssystem aus dem Speicher?"
Jeff Atwood
1
@ Jeff Mein Kommentar war nicht so präzise wie es hätte sein sollen. Im Hinblick auf den Arbeitsspeicher betrachte ich normalerweise die folgenden Leistungsindikatoren: Arbeitsspeicher: Seiten / Sek. Und Arbeitsspeicher: Verfügbare Bytes. Weitere Informationen finden Sie auf den folgenden Seiten: sql-server-performance.com/articles/audit/… und technet.microsoft.com/en-us/library/cc966540.aspx (insbesondere im Abschnitt Memory Bottlenecks)
Matt M
6
@ Jeff Dennys Antwort ist richtig, und für Perfmon-Zähler sehen Sie sich Memory: Available Bytes an. Wenn es unter 512 MB fällt, besteht die Gefahr, dass Sie das Betriebssystem aushungern lassen. Beachten
Brent Ozar
16

Wenn Sie unter Linux Swap ausschalten und der Kernel weiterhin Ihren DB-Prozess beendet, weil nicht genügend Arbeitsspeicher vorhanden ist, ist dies ein guter Indikator dafür, dass Sie das Betriebssystem nicht mehr genügend Arbeitsspeicher haben. Zieh dich zurück, bis das aufhört. Ein paar hundert Megabyte sind normalerweise genug.

Dan Grossman
quelle
+1 für Profil Profil Profil ~ aber es ist Jeff Askin Ich nehme an, es ist SQLServer und Windows sicher;)
Jcolebrand
1
@jcolebrand jedoch, auch wenn Sie wissen, dass es @jeff ist, werden Sie feststellen, dass er es nicht gesagt hat, was bedeutet, dass er dies absichtlich für alle Plattformen und Datenbanken offen gelassen hat.
Xenoterracide
2
Und obwohl er immer noch weiß, dass es @jeff ist ... warum sollte er nicht lernen können, sich keine Sorgen mehr zu machen und Linux zu lieben? ;-)
Jürgen A. Erhard
8

Hier können Sie die Erfahrung von Amazon beim Betreiben von Tausenden von Datenbankservern von Kunden nutzen: Bei Amazon Relational Database Service setzen sie den Innodb-Pufferpool von MySQL auf 3/4 des Arbeitsspeichers des Systems, unabhängig davon, wie viel Arbeitsspeicher vorhanden ist. Fügen Sie bis zu ein paar Megabyte pro Verbindung für verschiedene Abfragepuffer hinzu, und sie überlassen wahrscheinlich 10 bis 20% des Arbeitsspeichers dem Betriebssystem.

Dan Grossman
quelle
5

Sie sollten Brent Ozars Einstellung zur Erinnerung lesen . Er hat einige Standardantworten, warum Sie auf Gedächtnis schauen sollten und warum mehr Gedächtnis einer besseren Leistung gleichkommt. Im Allgemeinen sind 4 GB oder 10% für das Betriebssystem reserviert.

Troy
quelle