Configurar RAM para SQL Server y NUMA

10

Administración accidental de DB aquí.

Pregunta:

¿Limitaría manualmente la RAM máxima para SQL Server aunque el único propósito de ese servidor sea servir únicamente al motor de base de datos de SQL Server?

Tengo Microsoft Windows 2012 R2 Server, SQL Server 2012 Std, con 32 GB de RAM.

El administrador inicia sesión constantemente en SQL Server para usar su consola y todo.

En segundo lugar, ¿cómo verifica si este servidor de Windows está habilitado para NUMA?

volantis
fuente

Respuestas:

9

¿Todavía limitaría manualmente la RAM máxima para el evento MSSQL, aunque el único propósito de ese servidor es servir solo a MSSQL?

Ese es un tema poco discutible teniendo en cuenta que tiene SQL Server 2012 aquí. Si hubiera hecho la misma pregunta sobre SQL Server 2005/2008, que estaba en Windows Server 2003/2008, le sugiero que establezca un límite máximo de memoria del servidor debido a errores que existían en el sistema operativo Windows (2003/2008). Pero la configuración de la memoria y el rendimiento del sistema operativo cambiaron significativamente desde SQL Server 2012 en adelante y Windows Server 2008/2012 r2 en adelante, respectivamente, si me pregunta mi opinión, You can leave max server memory configuration to default if you have enough RAM on system and you are just using database engine features.si pregunta a los ingenieros de MS sobre esto, también dirán que SQL Server está bien codificado para administrar la memoria. sí mismo y si tiene un sistema dedicado solo al motor de base de datos SQL, puede dejar la memoria máxima del servidor SQL Server para que el servidor SQL predeterminado lo administre de manera eficiente.

De todos modos, si aún desea configurar, puede leer Preguntas y respuestas similares en este hilo SE

Hay una situación en la que se requiere la memoria máxima del servidor. He resumido eso en este hilo SE

En segundo lugar, ¿cómo verifica si este servidor de Windows está habilitado para NUMA?

Una pequeña búsqueda lo llevaría a este artículo de Blogs.msdn . Tiene varias descripciones pictóricas cuando SQL Server conoce NUMA y lo está utilizando.

Shanky
fuente
2
Me gusta usar la tabla de Brent Ozar para una referencia rápida sobre la configuración de memoria para casos de uso general.
LowlyDBA
3
Eso es, por supuesto, para una referencia rápida y actúa como un punto de partida para un valor. Estoy bastante seguro de que si le preguntas, él diría que necesitas mirar más a fondo los contadores de perfmon para alcanzar el valor óptimo . Es por eso que agregué un enlace SE en caso de que OP quiera establecer la memoria máxima del servidor.
Shanky
2

SQL es NUMAconsciente para que pueda encontrar NUMAinformación mediante una consulta. También puede usar esta consulta para ver cuántos NUMAnodos tiene y qué CPU y núcleos están asignados a cuáles NUMA:

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

O solo cuantos NUMA:

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

Sí, debe limitar la memoria máxima para SQL Server aunque el servidor solo tenga un propósito. De lo contrario, SQL Server puede comenzar a utilizar la memoria que Windows necesita para funcionar bien. Es habitual dejar 1GB -> 20% de la RAM total a Windows, dependiendo de sus necesidades.

La configuración NUMA del servidor se muestra en el Administrador de tareas seleccionando un proceso, haga clic con el botón derecho y seleccione Establecer afinidad. El Monitor de recursos de Windows también muestra la información NUMA.

Vemund Haga
fuente