Konfigurieren Sie RAM für SQL Server und NUMA

10

Versehentlicher DB-Administrator hier.

Frage:

Würden Sie den maximalen Arbeitsspeicher für SQL Server weiterhin manuell begrenzen, obwohl der einzige Zweck dieses Servers darin besteht, nur das SQL Server-Datenbankmodul bereitzustellen?

Ich habe Microsoft Windows 2012 R2 Server, SQL Server 2012 Std, mit 32 GB RAM.

Der Administrator meldet sich ständig beim SQL Server an, um dessen Konsole und alle zu verwenden.

Zweitens, wie überprüfen Sie, ob dieser Windows-Server NUMA-fähig ist?

volantis
quelle

Antworten:

9

Würden Sie den maximalen Arbeitsspeicher für MSSQL trotzdem manuell begrenzen, obwohl der einzige Zweck dieses Servers darin besteht, nur MSSQL zu bedienen?

Das ist ein wenig umstrittenes Thema, wenn man bedenkt, dass Sie hier SQL Server 2012 haben. Wenn Sie dieselbe Frage zu SQL Server 2005/2008 unter Windows Server 2003/2008 gestellt hätten, würde ich dringend empfehlen, ein maximales Server-Speicherlimit festzulegen, da im Windows-Betriebssystem (2003/2008) Fehler aufgetreten sind. Die Speicherkonfiguration und die Leistung des Betriebssystems haben sich jedoch ab SQL Server 2012 und Windows Server 2008/2012 R2 erheblich geändert. Wenn Sie mich nach meiner Meinung fragen, You can leave max server memory configuration to default if you have enough RAM on system and you are just using database engine features.wenn Sie MS-Ingenieure danach fragen, würden sie auch sagen, dass SQL Server gut codiert ist, um Speicher zu verwalten selbst und wenn Sie ein System haben, das nur der SQL-Datenbank-Engine gewidmet ist, können Sie den maximalen Server-Speicher von SQL Server dem Standard-SQL Server überlassen. SQL Server verwaltet ihn effizient.

Wenn Sie dennoch konfigurieren möchten, können Sie ähnliche Fragen und Antworten zu diesem SE-Thread lesen

Es gibt Situationen, in denen maximaler Serverspeicher erforderlich ist. Ich habe dies in diesem SE-Thread beschrieben

Zweitens, wie überprüfen Sie, ob dieser Windows-Server NUMA-fähig ist?

Eine kleine Suche würde Sie zu diesem Blogs.msdn- Artikel führen. Es hat verschiedene bildliche Beschreibungen, wenn SQL Server NUMA-fähig ist und es verwendet.

Shanky
quelle
2
Ich verwende gerne die Tabelle von Brent Ozar als Kurzreferenz zu den Speichereinstellungen für allgemeine Anwendungsfälle.
LowlyDBA
3
Dies ist natürlich eine schnelle Referenz und dient als Ausgangspunkt für einen Wert. Ich bin mir ziemlich sicher, wenn Sie ihn fragen, würde er sagen, dass Sie sich die Perfmon-Zähler genauer ansehen müssen, um einen optimalen Wert zu erreichen . Aus diesem Grund habe ich einen SE-Link hinzugefügt, nur für den Fall, dass OP den maximalen Serverspeicher festlegen möchte.
Shanky
2

SQL ist NUMAbekannt, sodass Sie NUMAInformationen mithilfe einer Abfrage finden können. Mit dieser Abfrage können Sie auch sehen, wie viele NUMAKnoten Sie haben und welche CPU und Kerne welchen zugewiesen sind NUMA:

SELECT parent_node_id, scheduler_id, cpu_id
FROM sys.dm_os_schedulers WITH (NOLOCK) 
WHERE [status] = N'VISIBLE ONLINE';

Oder wie viele NUMA:

select COUNT(distinct Parent_node_id)
from sys.dm_os_schedulers
where [STATUS] = 'VISIBLE ONLINE'
    and Parent_node_ID < 64
hpk89
quelle
-2

Ja, Sie sollten den maximalen Speicher für SQL Server begrenzen, obwohl der Server nur einen Zweck hat. Andernfalls verwendet SQL Server möglicherweise Speicher. Windows selbst muss ordnungsgemäß funktionieren. Es ist üblich, 1 GB -> 20% des gesamten Arbeitsspeichers Windows zu überlassen, je nach Ihren Anforderungen.

Die NUMA-Konfiguration des Servers wird im Task-Manager angezeigt, indem Sie einen Prozess auswählen, mit der rechten Maustaste klicken und Affinität festlegen auswählen. Der Windows-Ressourcenmonitor zeigt auch die NUMA-Informationen an.

Vemund Haga
quelle