Wie sollte ich Speicher für mehrere Instanzen von SQL Server konfigurieren?

9

Wir haben eine Reihe von SQL Server-Instanzen (2008 R2), die auf demselben virtuellen Server ausgeführt werden. Jede Instanz repräsentiert eine Phase in unserem Entwicklungszyklus (Dev / Test / Stage / etc.) Die Instanzen müssen alle zu einem bestimmten Zeitpunkt online sein, aber die Last wird in der Regel auf eine Instanz beschränkt, je nachdem, wo wir uns im Release-Lebenszyklus befinden.

SQL Server scheint die von uns als max. Was ich gerne wissen würde, wenn es eine Möglichkeit gibt, die Instanzen so zu konfigurieren, dass sie hinsichtlich des Speicherverbrauchs "intelligent" sind, damit sie sich nicht gegenseitig daran hindern, bei Bedarf Speicher zu erhalten.

Phil Sandler
quelle
Wenn alle Instanzen zu einem bestimmten Zeitpunkt online sein müssen und Sie den maximalen Speicher festlegen, wird er von SQL Server nicht freigegeben. Wenn Sie sagen, dass das Laden als Zeit auf eine Instanz isoliert ist, bedeutet dies, dass auf anderen Instanzen keine Aktivität vorhanden ist? Wie viele Instanzen führen Sie auf einer virtuellen aus und wie ist die CPU / Speicher-Konfiguration für die virtuelle?
Kin Shah
3
Ich habe darüber für Cluster mit mehreren Instanzen geschrieben, bei denen Sie den Speicher im Falle eines Failovers anpassen müssen, das zu mehreren Instanzen auf demselben Knoten führt . Sie könnten hier einen ähnlichen Ansatz verwenden, aber stattdessen gespeicherte Prozeduren bei Bedarf ausführen, die den Speicher basierend auf dem aktuellen Bedarf neu konfigurieren. Sie können nicht jede Instanz so einstellen, dass dies automatisch erfolgt, es sei denn, Sie fixieren sie einfach dauerhaft auf einen maximalen Speicher (und passen sie dann manuell an, wenn dies erforderlich ist).
Aaron Bertrand

Antworten:

7

SQL Server verwendet so viel Speicher, wie Sie darauf werfen können (so ziemlich), und es ist immer ratsam, für jede Instanz ein Limit festzulegen. Die Standardeinstellung ist 2147483647MB.

Abhängig von Ihrer Nutzung und den jeweiligen Umständen können Ihre Einstellungen variieren. Normalerweise ist es jedoch ein guter Ausgangspunkt, den maximalen Serverspeicher zwischen 75 und 90 Prozent festzulegen, je nachdem, wie viel RAM Sie haben. Glenn Berry hat HIER vor ein paar Jahren einen guten Hinweis gegeben .

Wenn Sie mehrere aktive Instanzen auf einem Server haben, müssen Sie möglicherweise die Ressourcen zwischen ihnen teilen. Wenn Sie beispielsweise 32 GB RAM mit 3 Instanzen haben, sollten Sie jeder Instanz etwa 9500 MB zuweisen. Wenn Sie jeweils nur eine Instanz verwenden, geben die anderen den von ihnen verwendeten RAM nicht frei. Sie können den Arbeitsspeicher freigeben, indem Sie den Dienst beenden.

Wenn andere Anwendungen / Dienste ausgeführt werden, muss die Speichermenge möglicherweise angepasst werden, um sie aufzunehmen.

RoKa
quelle