Configurare la RAM per SQL Server e NUMA


10

Amministratore DB accidentale qui.

Domanda:

Limiteresti ancora manualmente la RAM massima per SQL Server anche se l'unico scopo di quel server è servire solo il motore di database di SQL Server?

Ho Microsoft Windows 2012 R2 Server, SQL Server 2012 Std, con 32 GB di RAM.

L'amministratore accede costantemente a SQL Server per utilizzare la sua console e tutto il resto.

In secondo luogo, come si controlla se questo server Windows è abilitato NUMA?

Risposte:


9

Limiteresti ancora manualmente la RAM massima per MSSQL anche se l'unico scopo di quel server è servire solo MSSQL?

Questo è un argomento un po 'discutibile considerando che hai SQL Server 2012 qui. Se avessi fatto la stessa domanda su SQL Server 2005/2008, che era su Windows Server 2003/2008, suggerirei vivamente di impostare un limite massimo di memoria del server a causa di bug presenti nel sistema operativo Windows (2003/2008). Ma la configurazione della memoria e le prestazioni del sistema operativo sono cambiate in modo significativo da SQL Server 2012 in poi e Window Server 2008/2012 in poi rispettivamente, se chiedi la mia opinione, You can leave max server memory configuration to default if you have enough RAM on system and you are just using database engine features.se chiedi agli ingegneri MS su questo direbbero anche che SQL Server è ben codificato per gestire la memoria da stesso e se si dispone di un sistema dedicato solo al motore di database SQL, è possibile lasciare la memoria del server max di SQL Server su SQL Server predefinito per gestirla in modo efficiente.

Ad ogni modo se vuoi ancora configurare puoi leggere Domande e risposte simili fornite su questo thread SE

Ci sono situazioni in cui è richiesta la memoria massima del server che ho indicato in questo thread SE

In secondo luogo, come si controlla se questo server Windows è abilitato NUMA?

Una piccola ricerca ti condurrebbe a questo articolo Blogs.msdn . Ha varie descrizioni pittoriche quando SQL Server è a conoscenza di NUMA e lo sta utilizzando.


2
Mi piace usare la tabella di Brent Ozar per un rapido riferimento alle impostazioni della memoria per i casi d'uso generali.
LowlyDBA,

3
Ciò è utile per un rapido riferimento e funge da punto di partenza per un valore. Sono abbastanza sicuro che se gli chiedi che avrebbe detto che è necessario esaminare ulteriormente i contatori di perfoni per raggiungere il valore ottimale . Questo è il motivo per cui ho aggiunto un collegamento SE nel caso in cui OP desideri impostare la memoria massima del server.
Shanky,

2

SQL è a NUMAconoscenza, quindi puoi trovare NUMAinformazioni usando una query. Puoi anche usare questa query per vedere quanti NUMAnodi hai e a quale CPU e core sono assegnati a quali NUMA:

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

O solo quanti NUMA:

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

-2

Sì, è necessario limitare la memoria massima per SQL Server anche se il server ha un solo scopo. In caso contrario, SQL Server potrebbe iniziare a utilizzare la memoria che Windows deve funzionare correttamente. È normale lasciare 1 GB -> 20% della RAM totale su Windows, a seconda delle esigenze.

La configurazione NUMA del server viene visualizzata in Task Manager selezionando un processo, fare clic con il tasto destro e selezionare Imposta affinità. Windows Resource Monitor visualizza anche le informazioni NUMA.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.