¿Cuáles son las configuraciones correctas para min-memory y max-memory en este caso de uso?
El servidor tiene 8 GB de RAM, procesadores duales Intel Xeon, que ejecutan Windows Server 2008 R2 / Sql Server 2008 Standard Edition. Está ejecutando varias bases de datos que van desde 30 GB a 5 GB de tamaño.
Originalmente, el uso de la memoria se estableció en la configuración predeterminada (min = 0 max = 2,147,483,647). En estas configuraciones, sqlservr.exe asumió la mayor parte del uso de la memoria y el servidor eventualmente necesitaría reiniciarse cada día o dos. Funcionaría normalmente al principio, pero dentro de un día comenzaría a agotar el tiempo en operaciones simples como buscar un registro usando la clave primaria.
He cambiado min = 4.096 y max = 6.144. Esto da como resultado solo un uso de memoria de 1.4GB. Sin embargo, ahora los cuatro cpus se ejecutan al 50-60% de uso de la CPU constantemente. Las tareas están tardando aproximadamente 1/3 más en ejecutarse, aunque el servidor es mucho más estable.
Respuestas:
Mirando la disponibilidad de RAM para este servidor en particular y está ejecutando varias bases de datos que van desde 30 GB a 5 GB , definitivamente necesita más RAM en este servidor.
No ha mencionado que esta es una instancia independiente o que este servidor está ejecutando más de una instancia de servidor SQL.
La configuración de la memoria MAX parece correcta para un servidor que tiene 8 GB de RAM. Vea estos ajustes sugeridos de mejores prácticas de Glenn Berry .
Recomiendo encarecidamente que haga una línea base de su entorno utilizando los contadores PERFMON a continuación para obtener un buen valor de la configuración de su memoria:
Memoria total del servidor: cantidad de memoria asignada actualmente a la agrupación de almacenamiento intermedio y no la cantidad total de memoria a SQL Server
Memoria del servidor de destino: tamaño ideal del grupo de búferes correspondiente a la memoria máxima para la instancia.
Nota: Si la memoria total del servidor> la memoria del servidor de destino, sugiere presión de memoria.
El siguiente script lo ayudará a encontrar notificaciones de memoria BAJA o ALTA de
sys.dm_os_ring_buffers
la sesión de estado del sistema:Algunas buenas referencias:
fuente