19 votos

¿Cómo puedo obtener SQL Server para liberar su memoria?

Sé SQL gusta RAM, pero la libera cuando Windows le pide. Sé que esta es la forma en que SQL se supone que funciona. Pero tengo un Administrador de Windows que no está convencido de que el SQL realmente retorno de la RAM, y en este particular (virtual) server, SQL no necesita mucho una vez que el Análisis de los Servicios está terminado, pero no hay nada más en este servidor que molestarse en preguntar SQL para mucho.

Así que estoy tratando de tranquilizar a los Administradores de Windows de que los problemas con el entorno virtual no son "porque SQL está utilizando demasiada memoria RAM", pero me parece que no puede persuadir a SQL para liberarlo sin tener que reiniciar el servicio.

Cuando el procesamiento de los cubos, el servicio de SQL felizmente lleva 8GB de RAM, pero debido a que no hay presión, no suelte mucho de esto durante un día normal. El Windows chicos gritar, y sería mucho mejor tener SQL liberación de este.

No quiero usar el max ajuste de memoria, porque yo realmente quiero SQL a utilizar esa cantidad de RAM en el proceso. Yo solo quiero que regrese de nuevo más tarde.

Es potencialmente un duplicado de ambos http://serverfault.com/questions/83796/sql-server-not-releasing-memory y http://serverfault.com/questions/1279/reclaiming-memory-from-sql-serverpero me pregunto si hay una respuesta diferente. A la espera de Windows para recuperar no va a convencer a la de Windows chicos de aquí. Reiniciar el servicio es una opción, pero yo realmente no soy un fan de esa idea.

Quiero saber cómo hacer que Windows pedir de nuevo...

12voto

Mitch Wheat Puntos 417

Yo creo que su única opción es reiniciar el Servicio de SQL, o para ejecutar una aplicación que consume gran cantidad de memoria a fuerza de SQL para que se suelte.

Me gusta @Nick Kavadias sugerencia: el monitor de la Memoria: errores de Página/s contador de rendimiento para mostrar que SQL no ha puesto el sistema operativo de memoria bajo presión.

6voto

Remus Rusanu Puntos 7248

Usted menciona "cubos" de modo que no está claro si hablas COMO el motor o el motor relacional. El motor relacional, se puede liberar la memoria en la demanda:

DBCC FREESYSTEMCACHE('<cache name>');

Donde "nombre de la caché' es tomado de sys.dm_os_memory_clerks. La especificación de DBCC FREESYSTEMCACHE sólo menciona el gobernador de piscinas, pero son muchos más los cachés pueden ser desalojados en realidad.

Pero si toda la memoria utilizada por el grupo de búferes, luego de desalojar a todo el grupo de búferes resultará en una tremenda degradación del rendimiento y la enorme carga de e / s. Mejor vamos a SQL manejar esto por sí mismo.

5voto

JohnMcG Puntos 5062

Una manera de mostrar que eso es lo que hará es tener SQL Server masticar toda la memoria. A continuación copiar un archivo grande a través de la red (gran SQL archivos de Copia de seguridad funcionan muy bien para esto). Esto hará que el sistema de caché para llenar, y que Windows va a empezar a preguntar SQL para su memoria. SQL se empiecen a regresar a su memoria el sistema operativo hasta que llega a su min configuración de la memoria.

(Lo sentimos, no obtener la totalidad de la cuestión a través de Twitter, más de 140 caracteres eran necesarios al parecer.)

2voto

Jason Cumberland Puntos 1297

Con tanto el COMO y el DS motores usted puede poner una tapa en la memoria de modo que queden por debajo de un umbral de seguridad; esto se recomienda en 64 nacimiento máquinas con mucha memoria RAM y/o varias instancias de SQL. Por lo menos el motor de base de datos si cambia el límite de memoria para a continuación lo que el uso actual se reducirá la cantidad de la memoria sobre la marcha sin tener que reiniciar el servicio, no está seguro acerca de SSAS, aunque.

1voto

Nick van Esch Puntos 101

La más sencilla que he encontrado es ir a las propiedades de la memoria del servidor, introduzca un valor pequeño, aplicar, esperar unos minutos y ajustar la configuración de la copia de seguridad.

También hemos encontrado la limitación de los servidores sql, uso de la memoria en realidad puede mejorar el rendimiento del servidor, ya que da windows más memoria ram para el almacenamiento en caché, etc

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: