Configuración de memoria máxima en SQL Server


11

Estoy ejecutando SQL Server 2008 y una aplicación basada en web, en un único servidor dedicado, con solo 2 Gb de memoria disponible.

Como se señaló en otra parte, SQL Server ocupa regularmente hasta el 98% de la memoria física, lo que parece ralentizar la aplicación web que se ejecuta en el servidor.

En Propiedades del servidor en SSMS, en Memoria, la Memoria máxima del servidor (en Mb) se establece en: 2147483647 Servidor SQL

Mi pregunta es, ¿cuál sería el número recomendado para poner en el cuadro de memoria máxima del servidor, dada la cantidad de memoria que tengo disponible, y que el mismo servidor también está ejecutando la aplicación web?

Además, ¿es seguro realizar un cambio en este número mientras se ejecuta SQL Server?

Gracias por tu consejo.


2
Un artículo reciente que escribí sobre el exceso de memoria en servidores SQL puede ser útil para que lo lea.
Jon Seigel

Respuestas:


13

Primero responderé la última pregunta: Sí, puede cambiarla mientras el servidor se ejecuta sin problemas. Si desea cambiar el valor a través de SQL, puede hacerlo con la siguiente consulta

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO

Consulte esta página para obtener más detalles sobre cómo configurar la memoria en el servidor SQL.


Su primera pregunta, desafortunadamente la respuesta es: no puedo decirte, no estoy allí.

Hay un millón de cosas que debe tener en cuenta al asignar memoria. ¿Qué tan grandes son los conjuntos de resultados de las consultas, con qué frecuencia se ejecutan, una consulta que solía tomar 20 ms estaría bien para tomar ahora 200 ms?

Los valores predeterminados de SQL asumen que es lo único que se ejecuta en el servidor, por lo que solo establece la memoria en MAX_VALUE y deja de crecer cuando toda la memoria disponible está en uso (y en hardware dedicado que está bastante cerca de lo que quiere que suceda) (vea Aarons comenta una posible advertencia)). Normalmente, cualquier servidor web u otro software que interactúe con la base de datos estaría en un hardware diferente que se comunicaría a través de la red.

Realmente solo necesitas establecerlo en un valor que creas que es sensato, y si tu servidor web todavía está bloqueado por la memoria, bájalo. Si SQL no le brinda el rendimiento suficiente después de darle al servidor web la memoria que necesita, deberá comprar más RAM o mover el SQL a un hardware dedicado.


2
Hay un buen informe en SSMS sobre la memoria del servidor SQL: blogs.msdn.com/b/buckwoody/archive/2007/10/17/… Puede rastrear qué parte consume más memoria
DiGi

1

Nunca debe permitir que el servidor SQL tome toda la memoria en la caja. Depende de lo que se esté ejecutando en esa caja y cuánta memoria tenga la caja, pero siempre me aseguro de dejar el 10% de la memoria para el O \ S.


0

En mi compañía actual donde me contratan, siempre uso la configuración mínima y máxima para SQL Server. El máximo, si el servidor solo se usa para SQL Server, siempre lo configuro en la memoria MAX: 1 gb para el sistema operativo. El mínimo en nuestro caso en 2GB.

Pero eso está probado para nuestras instalaciones. No todas las instalaciones y usos son iguales, y sigo sintiendo que la memoria no siempre hace lo que quieres;)

Puede ser algo conocido en su caso, pero también observe el intercambio de memoria. Cuando solo tiene 2 GB en el servidor y el sistema operativo y el servidor SQL se ejecutan con una "carga elevada", el consumo de memoria será demasiado alto, donde el sistema operativo tenderá a intercambiarse. Asegúrese de que sus archivos de paginación no estén en la unidad del sistema operativo, de lo contrario, podría terminar con un sistema totalmente atascado (estado allí antes y no le gustó)


-1

Acabo de cambiar "memoria máxima del servidor" en el servidor en vivo sin problemas. Parece que está configurado como 2147483647 de forma predeterminada en todas las bases de datos (pero no sé cómo leer realmente su valor de SQL antes del cambio) ...


-2

Seguir con los valores predeterminados en el 99% de los casos. Esto permitirá la gestión dinámica de la memoria.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.