La memoria de SQL Server aumenta constantemente, de 1 GB de RAM utilizada a 7 GB en una semana

8

Tengo una base de datos de ~ 45 GB que aumenta rápidamente (~ 1 GB cada semana).

Entonces está haciendo muchos insertos; la aplicación web no tiene muchos usuarios, por lo que las lecturas son bajas en este momento.

Pero me doy cuenta de que los usuarios del servidor RAM sql pasan de ~ 1 GB cuando el servidor comienza a usar ~ 7 GB de RAM después de una semana.

¿Hay algún tipo de pérdida de memoria? Había un artículo en MSDN que sugería que el servidor SQL aumenta la memoria que usa para el almacenamiento en caché y que siempre seguirá aumentando. Sin embargo, el servidor solo tiene 7,5 GB o RAM, por lo que me preocupa que se quede sin memoria a menos que reinicie SQL Server todas las semanas ... lo que parece incorrecto.

¿Es este comportamiento típico? ¿Hay alguna configuración que pueda establecer para establecer un límite en el uso de la memoria?

rksprst
fuente
3
Ver la respuesta de Farseeker. Golpeó el clavo en la cabeza. Este es un comportamiento normal y listo para usar, y aunque hay una forma de limitar el uso de memoria de SQL; realmente no necesitas hacer eso. Nuestro servidor SQL limita a 10.5GB - 11GB (de un total de 12GB) de memoria en unas pocas horas. Yo y mi DBA estamos muy contentos cuando vemos SQL con tanta memoria. Significa que nuestras aplicaciones tendrán acceso a esos datos mucho más rápido.
Cypher

Respuestas:

14

El servidor SQL está destinado a usar tanta memoria RAM como pueda tener en sus manos. El servidor SQL también es increíblemente inteligente. Tenemos servidores de bases de datos con RAM que van desde 2 Gb a 96 Gb y ni una sola vez, he tenido que intervenir y comenzar a administrar la RAM manualmente, y la mayoría de ellos tienen una utilización del 99.5%.

El hecho simple es que SQL Server que se ejecuta con 1 Gb de memoria consumida va a ser mucho más lento en las lecturas que un servidor SQL que se ejecuta con 96 Gb de memoria consumida.

A menos que esté compartiendo los roles del servidor SQL con otros roles intensivos en memoria, simplemente déjelo en paz. Nunca usará más memoria disponible en el sistema, y ​​si alcanza el 99% de utilización, entonces genial: ha creado un caché grande y las cosas serán más rápidas a partir de ahora.

Mark Henderson
fuente
Gracias, no tenía idea de que este era el comportamiento esperado y deseado. Me aseguraré de dejarlo solo entonces.
rksprst
1
@rksprst: todo bien, lleva un tiempo acostumbrarse.
Mark Henderson
2

Por lo general, querrá asignar 1-2 gigas de RAM para el sistema operativo para que el sistema operativo tenga RAM para trabajar. El servidor SQL puede tener el resto de la memoria.

mrdenny
fuente
Algunas fuentes de MS recomiendan limitar su memoria, entonces +1.
Sam