sql >> Base de Datos >  >> RDS >> Sqlserver

Selección y configuración de hardware para SQL Server 2016 Standard Edition

Desde el lanzamiento de SQL Server 2016 Service Pack 1 el 16 de noviembre de 2016, con muchas características muy útiles relacionadas con la programación que anteriormente solo estaban disponibles en Enterprise Edition, se ha vuelto mucho más factible para muchas organizaciones elegir deliberadamente usar SQL Server 2016. Edición estándar de lo que era en el pasado.

Si está pensando en hacer esto, debe tener en cuenta algunos problemas y dificultades comunes con los que puede encontrarse cuando instala y usa SQL Server 2016 Standard Edition en un nuevo servidor con hardware moderno.

Límites de memoria y configuración

El primer problema son los límites de licencia por instancia para SQL Server 2016 Standard Edition. El primer límite de licencia es la cantidad de memoria que puede usar para el grupo de búfer para cada instancia de SQL Server 2016 Standard Edition, que es de solo 128 GB, tal como lo era en SQL Server 2014 Standard Edition. Personalmente, creo que este límite es artificialmente bajo dada la densidad de memoria de los servidores modernos de dos sockets, pero es un límite con el que debemos lidiar.

Los servidores actuales de dos zócalos que utilizan procesadores de la familia de productos Intel Xeon E5-2600 v4 pueden utilizar hasta 12 DIMM por procesador, mientras que los DIMM DDR4 ECC de 32 GB son los de mayor capacidad y también asequibles por GB. Cada servidor con esta familia de procesadores tiene 4 canales de memoria por procesador, y cada canal admite hasta 3 DIMM. Un servidor de dos sockets completo con veinticuatro DIMM de 32 GB tendría 768 GB de RAM, que es mucho más de lo que se permite usar con una sola instancia de SQL Server 2016 Standard Edition.

Dado que SQL Server 2016 Standard Edition tiene un límite de memoria por instancia tan bajo, debe elegir deliberadamente una configuración de memoria adecuada que le permita usar toda la memoria del límite de licencia y, al mismo tiempo, obtener el mejor rendimiento de memoria posible. Solo llenar un DIMM por canal de memoria le brindará el mejor rendimiento de memoria absoluto compatible con su(s) procesador(es).

Los principales proveedores de servidores, como Dell, ofrecen orientación detallada sobre las posibles configuraciones de memoria para sus servidores, según la cantidad y el tipo específico de procesador seleccionado. Para SQL Server 2016 Standard Edition en un servidor de dos sockets con dos procesadores de la familia Intel Xeon E5-2600 v4, elegir ocho módulos DIMM DDR4 de 32 GB le proporcionaría 256 GB de RAM, funcionando a la velocidad máxima admitida de 2400 MT/s.

Esto le permitiría configurar la memoria máxima del servidor (para el grupo de búfer) en 131 072 MB (128 GB), y aún le sobraría mucha memoria para el sistema operativo y para el posible uso de índices de almacén de columnas y OLTP en memoria. También tendría dieciséis ranuras DIMM vacías que podrían usarse para futuras expansiones de RAM (que podría aprovechar si realiza una actualización posterior de la Edición a la Edición Enterprise). Otro uso para algunas de esas ranuras DIMM vacías sería para el "almacenamiento en caché de registros" en NVDIMM (que es compatible con SQL Server 2016 Standard Edition con SP1).

Límites de la licencia del procesador

SQL Server 2016 Standard Edition también está limitado a cuatro sockets o 24 núcleos de procesador físico, lo que sea menor. Con las familias de procesadores actuales y futuras de Intel y AMD que tendrán hasta 32 núcleos físicos, es muy fácil exceder inadvertidamente el límite de núcleos de procesador por instancia, con una serie de consecuencias nefastas para el rendimiento y los costos de licencia.

El primer efecto negativo de hacer esto es cómo SQL Server 2016 Standard Edition asignará sus núcleos físicos con límite de licencia disponibles en sus nodos NUMA. Por ejemplo, si tuviera un nuevo servidor de dos sockets que tuviera dos procesadores Intel Xeon E5-2697A v4 de 16 núcleos, de forma predeterminada, SQL Server 2016 Standard Edition usaría dieciséis núcleos físicos en el nodo 0 de NUMA y solo ocho núcleos en NUMA. el nodo 1, que es una configuración desequilibrada que no funcionará tan bien como podría. Puede solucionar este problema con un comando ALTER SERVER CONFIGURATION como lo describo aquí.

Para colmo de males en esta situación, Microsoft también esperaría que compre licencias de núcleo para los 32 núcleos físicos en la máquina, aunque solo se le permite usar 24 núcleos físicos por instancia. Este sería un costo de licencia adicional de aproximadamente $ 15K, para licencias principales que no podría usar, a menos que decida ejecutar varias instancias en la misma máquina host. El costo adicional de la licencia pagaría por un servidor típico de dos sockets, dependiendo de cómo se haya configurado.

Otro error común que debe evitar con Standard Edition es crear una máquina virtual que tenga más de cuatro sockets. Si lo hace, SQL Server Standard Edition solo usará cuatro sockets debido al límite de licencia de socket.

Selección de procesador

Actualmente, la familia de procesadores Intel Xeon más moderna para servidores de dos sockets es la familia de productos Intel Xeon E5-2600 v4 de 14 nm (Broadwell-EP) que se lanzó en el primer trimestre de 2016. Intel está a punto de lanzar la próxima generación de procesadores Intel Xeon E5-2600 v4 de 14 nm. Xeon E5-2600 v5 (Skylake-EP), que ya está disponible en Google Cloud Platform. Supongo que estos nuevos procesadores (que requerirán nuevos modelos de servidores) estarán disponibles públicamente en el segundo trimestre de 2017.

Dado este límite de licencia de 24 núcleos físicos, es extremadamente importante que no seleccione un procesador que tenga más de 12 núcleos físicos (si planea ocupar ambos zócalos de un servidor de dos zócalos). Esto limita un poco su selección de SKU de procesador, pero todavía hay cuatro excelentes opciones disponibles, como se muestra en la Tabla 1.

Modelo Núcleos Est. Puntuación del sistema TPC-E Puntuación/Núcleo físico Coste de la licencia
Xeon E5-2687W v4 24 3.673,00 153.04 $44,592.00
Xeon E5-2667 v4 16 2611,91 163.24 $29,728.00
Xeon E5-2643 v4 12 2.081,36 173,44 $22,296.00
Xeon E5-2637 v4 8 1428,39 178,54 $14,864.00

Tabla 1:Métricas comparativas del procesador del sistema de dos sockets

La Tabla 1 muestra el total de núcleos físicos, la puntuación estimada de TPC-E, la puntuación estimada de TPC-E/núcleo físico y el costo total de la licencia de SQL Server 2016 Standard Edition para un sistema de dos sockets, con dos de los procesadores seleccionados. Puede notar que tengo un procesador de doce núcleos, un procesador de ocho núcleos, un procesador de seis núcleos y un procesador de cuatro núcleos, pero no hay un procesador de diez núcleos en la Tabla 1. Esto es por diseño, ya que el Los tres modelos de procesadores de diez núcleos disponibles son malas opciones para SQL Server, debido a sus velocidades de reloj base muy bajas.

La puntuación TPC-E estimada para todo el sistema es una medida de la capacidad total de la CPU del sistema, mientras que la puntuación/núcleo es una medida del rendimiento de la CPU de subproceso único de ese procesador específico.

Resumen

Si desea obtener el mejor rendimiento posible al menor costo de licencia de hardware y SQL Server para una instancia de SQL Server 2016 Standard Edition, debe elegir una configuración de memoria que solo use un DIMM por canal de memoria (lo que significa un total de ocho DIMM en un sistema de dos sockets). con dos procesadores de la familia Intel Xeon E5-2600 v4).

También debe elegir deliberadamente uno de los cuatro procesadores enumerados en la Tabla 1. Cualquier otra elección de procesador es un error potencialmente costoso desde esta perspectiva.

Finalmente, si va a usar SQL Server 2016 Standard Edition, debe investigar y probar si Buffer Pool Extension (BPE) podría ayudar al rendimiento con su carga de trabajo. Dependiendo de su carga de trabajo, el almacenamiento en caché de "la cola del registro" en un NVDIMM también podría ser muy beneficioso para el rendimiento de su registro de transacciones.