sql >> Base de Datos >  >> RDS >> Database

¿Cuánta RAM necesita su nuevo servidor de base de datos?

Una pregunta que surge con bastante frecuencia es cómo determinar cuánta RAM física debe haber en un servidor de base de datos que ejecuta SQL Server 2012. Una de las primeras piezas de información que necesita para determinar esto es qué versión y edición de SQL Server ejecutará. en su nuevo servidor.

Las diferentes versiones y ediciones de SQL Server de 64 bits tienen diferentes límites de licencia para la cantidad de RAM física que pueden usar para diferentes propósitos, como se muestra en la Tabla 1.

Servidor SQL 2008 Servidor SQL 2012
Versión Edición Límite del motor Límite SSAS
Estándar

Límite de sistema operativo

Límite de sistema operativo
Empresa

Límite de sistema operativo

Límite de sistema operativo
Servidor SQL 2008 R2 Estándar

64 GB

64 GB
Empresa

2 TB

2 TB
Centro de datos

Límite de sistema operativo

Límite de sistema operativo
Estándar

64 GB

64 GB
Inteligencia empresarial

64 GB

Límite de sistema operativo
Empresa

Límite de sistema operativo

Límite de sistema operativo

Tabla 1:Límites de RAM de SQL Server por versión y edición

Como puede ver en la Tabla 1, SQL Server 2008 podría usar hasta el límite del sistema operativo para RAM física para las ediciones Standard y Enterprise. Cuando Microsoft lanzó SQL Server 2008 R2, tuvieron la mala idea (en mi opinión) de introducir límites físicos de RAM más bajos para las ediciones Standard y Enterprise. También introdujeron una nueva edición de centro de datos de SQL Server 2008 R2, que tenía el límite antiguo y familiar del sistema operativo como límite de licencia para RAM física.

Límites de memoria de SQL Server 2012

Cuando Microsoft lanzó SQL Server 2012, sabiamente se deshicieron del SKU de Data Center Edition, pero mantuvieron el mismo límite de RAM artificialmente bajo de 64 GB para Standard Edition. He escrito extensamente sobre por qué es una mala idea, por lo que no recapitularé esos argumentos nuevamente aquí. Baste decir que es un poco ridículo estar restringido a usar menos de $ 800.00 en RAM DDR3 ECC (64 GB por $ 12/GB) en un nuevo servidor de dos sockets que puede haber costado entre $ 10 y $ 15K para el servidor en sí. , más alrededor de $29 000 por dieciséis licencias básicas de SQL Server 2012 Standard Edition, sin mencionar los costos de almacenamiento.

Hasta el momento, no hay indicios de que Microsoft tenga la intención de cambiar este límite de RAM para SQL Server 2014, por lo que es posible que tengamos que seguir lidiando con eso. Un pequeño aspecto positivo de este límite de RAM es que es por instancia de SQL Server, no por servidor. Eso significa que podría, con un poco de reflexión y planificación, decidir instalar dos o tres instancias de SQL Server 2012 Standard Edition en la misma máquina física para aprovechar toda la memoria, el procesador y los recursos de almacenamiento de la máquina, si está dispuesto. para lidiar con el uso de recursos adicionales y la sobrecarga de administración de las instancias con nombre. Esto podría ahorrarle una cantidad significativa de dinero en hardware y costos de licencias de SQL Server 2012 en comparación con tener dos o tres servidores separados.

Si decide quedarse con una única instancia predeterminada de SQL Server 2012 Standard Edition (que prefiero si estoy limitado a Standard Edition), ¿debería obtener 64 GB de RAM para el servidor de la base de datos? ¡Creo que la respuesta es un rotundo no!

Ejemplo de configuración de memoria de SQL Server 2012 Standard Edition

Dado que la clase de servidor, la memoria RAM DDR3 ECC es muy asequible; Creo que una cantidad mínima razonable de RAM para un nuevo servidor de dos sockets está más cerca de los 96 GB de RAM. Esto le permitirá establecer la configuración máxima de memoria del servidor a nivel de instancia en 65536 MB, que es exactamente 64 GB de RAM, dejando suficiente RAM sobrante para el sistema operativo y cualquier otra aplicación que pueda estar ejecutándose en su servidor de base de datos.

Los principales proveedores de servidores tienen documentación y herramientas de configuración de memoria en línea que ayudan a garantizar que obtenga la mejor configuración de memoria posible para la cantidad deseada de memoria física. También puede usar una herramienta como CPU-Z para verificar la velocidad de la memoria de su sistema y asegurarse de que esté funcionando a la velocidad que espera.

Por ejemplo, Dell tiene una herramienta de configuración en línea aquí. Esta herramienta le permite elegir el modelo de servidor Dell que desea, incluida la familia de procesadores que utilizará (cuando tenga la opción) y la cantidad de procesadores físicos que realmente habrá en el servidor. Luego ingresa la cantidad de RAM física que desea en el servidor y elige las opciones de confiabilidad de memoria deseadas (como duplicación de memoria, reserva de rango, etc.), y luego la herramienta presentará tres configuraciones de memoria posibles diferentes:Configuración nominal, Máximo rendimiento y configuración equilibrada. Estas configuraciones muestran el tipo, el número y el tamaño de los módulos de memoria que debe usar, y qué canales de memoria y ranuras debe llenar para satisfacer la opción de configuración elegida.

Si elige un servidor de dos sockets Dell PowerEdge R720, con dos de los nuevos procesadores Intel Xeon E5-2600 v2 (Ivy Bridge-EP) de 22 nm y selecciona 96 GB de RAM sin otras opciones de confiabilidad de memoria, obtendrá tres memorias sugeridas opciones de configuración. La opción de rendimiento máximo sugiere doce módulos RDIMM 1R x4 de 8 GB y 1866 MHz, con la ranura 0 en los canales 1-4 ocupados y la ranura 1 en los canales 1-2 ocupados para cada procesador. Esto le brinda una velocidad de memoria del sistema de 1866 MHz, que es la máxima admitida por la nueva serie de procesadores Intel Xeon E5-2600 v2.

Por cierto, si va a utilizar SQL Server 2012 Standard Edition, el procesador exacto que desea en un Dell R720 es el Intel Xeon E5-2667 v2, que tiene ocho núcleos físicos con una velocidad de reloj base de 3,3 GHz. Tener un modelo de conteo de núcleos más alto se encontraría con el límite de licencia de 16 núcleos físicos para SQL Server 2012 Standard Edition.

La opción de configuración equilibrada sugiere doce RDIMM x4 1R de 8 GB a 1600 MHz, con la ranura 0 en los canales 1-4 ocupados y la ranura 1 en los canales 1-2 ocupados para cada procesador. Esto le brinda una velocidad de memoria del sistema de 1600 MHz, que utilizará un poco menos de energía eléctrica que la opción de rendimiento máximo.

La opción de configuración Nominal sugiere veinticuatro RDIMM 1R x8 de 4 GB a 1333 MHz con todas las ranuras en todos los canales ocupados para cada procesador. Esto le brinda una velocidad de memoria del sistema de 1333 MHz, con todas sus ranuras ocupadas con RDIMM de 4 GB bastante pequeñas. Esta es una opción menos que óptima que está diseñada para ahorrar algo de dinero en costos de memoria mediante el uso de DIMM de menor capacidad y menor velocidad. Desafortunadamente, hay pocos ahorros monetarios reales aquí, a costa de renunciar a una cantidad decente de rendimiento de la memoria y no tener ranuras de memoria vacías.

Con los procesadores de la serie Intel Xeon E5-2600 y E5-2600 v2, obtendrá el ancho de banda de memoria más alto posible si solo ocupa una o dos ranuras por canal de memoria. Ocupar la tercera ranura de memoria provoca una disminución en la velocidad de la memoria del sistema. La mayor cantidad de memoria que puede usar a la velocidad máxima de la memoria del sistema con módulos RDIMM económicos de 16 GB es de 256 GB, que serían dieciséis módulos RDIMM de 16 GB, ocupando todas las ranuras en los canales 1 y 2. No hay ningún beneficio en la velocidad de la memoria del sistema al tener menos de 256 GB de memoria. RAM en un servidor de dos sockets con dos procesadores de la serie Xeon E5-2600 o E5-2600 v2.

Aunque es mejor tratar de encontrar una configuración de memoria que produzca la velocidad de memoria del sistema más alta posible para una cantidad determinada de RAM, en mi experiencia (y en la mayoría de los puntos de referencia de aplicaciones reales que he visto), la diferencia de rendimiento en el mundo real entre diferentes velocidades de memoria del sistema es mucho menor de lo que cabría esperar, a menudo en el rango de 5-10% o menos. Para el uso de SQL Server Enterprise Edition, preferiría tener suficiente RAM para acomodar toda mi carga de trabajo en el grupo de búfer en lugar de elegir una menor cantidad de RAM para obtener la mayor velocidad de memoria posible a costa de tener que extraer más datos del subsistema de almacenamiento. a menudo. Incluso la memoria RAM "lenta" tiene una latencia mucho menor que cualquier tipo de subsistema de almacenamiento, incluido el almacenamiento basado en flash.

Si mi carga de trabajo no cabe en 256 GB de RAM, preferiría agregar más RAM y recibir el golpe de velocidad de la memoria del sistema en lugar de tener que acceder al subsistema de almacenamiento mucho más lento con más frecuencia. Para recapitular, creo que el punto óptimo de memoria para SQL Server 2012 Standard Edition para este tipo de servidor es de 96 GB, aumentando a 256 GB para SQL Server 2012 Enterprise Edition (a menos que su carga de trabajo supere los 256 GB).