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
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.
Respuestas:
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
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.
fuente
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.
fuente
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ó)
fuente
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) ...
fuente
Seguir con los valores predeterminados en el 99% de los casos. Esto permitirá la gestión dinámica de la memoria.
fuente