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

Selección práctica del procesador para cargas de trabajo OLTP de SQL Server 2014/2016

Probablemente no sea la CPU que busca.

Imagine que acaba de obtener la aprobación de la administración para un nuevo servidor de base de datos local que ejecutará una carga de trabajo OLTP de misión crítica con SQL Server 2014 Enterprise Edition ejecutándose en Windows Server 2012 R2 Standard Edition. Este nuevo servidor reemplazará un servidor Dell PowerEdge R910 heredado que ejecuta SQL Server 2008 R2 Enterprise Edition en Windows Server 2008 R2 Enterprise Edition. Este servidor existente tiene cuatro procesadores Intel Xeon X7560 Nehalem-EX de 45 nm (lo que le da un total de 32 "núcleos físicos en el sistema) y tiene 512 GB de RAM, que era una configuración premium cuando se compró en 2010.

Para este ejemplo, tiene un presupuesto de licencia de hardware y software algo limitado disponible para la actualización de la plataforma. Quiere pasar a SQL Server 2014 Enterprise Edition, en un servidor nuevo con un rendimiento de CPU de subproceso único mucho mejor (ya que tiene una carga de trabajo OLTP) y una mayor capacidad general de CPU, al mismo tiempo que minimiza los costos de licencia de hardware y SQL Server.

Dada esta información, ¿cómo decidiría qué modelo de servidor elegir y qué procesador exacto seleccionar? ¿Dejarías que alguien en el I.T. departamento tome estas decisiones, o se involucraría usted en el proceso de evaluación y toma de decisiones? En lugar de dejar que "Shon the server guy" decida, quiero mostrarle un método fácil y práctico para resolver esto, usando puntajes de referencia de TPC-E, algo de aritmética simple y algo de sentido común.

El primer paso es consultar las puntuaciones de los resultados de referencia de TPC-E en línea, buscando el sistema equivalente más cercano a su sistema actual. Si tiene suerte, encontrará un envío de referencia oficial que coincida exactamente con su sistema. En nuestro caso, encontré una presentación del 10 de abril de 2010 que coincide exactamente con nuestro sistema heredado. Este sistema Dell PowerEdge R910 tuvo una puntuación de rendimiento TPC-E real de 1933,96, con cuatro procesadores Intel Xeon X7560 de ocho núcleos. La puntuación de rendimiento real de TPC-E es una buena medida de la capacidad general de la CPU del sistema, lo que le brinda una indicación aproximada de cuántas consultas simultáneas puede manejar (suponiendo que no tenga cuellos de botella relacionados con el almacenamiento o la memoria).

El segundo paso es tomar la puntuación de rendimiento real de TPC-E para este sistema y dividirla por la cantidad de núcleos de procesador físicos en el sistema, para tener una idea del rendimiento del procesador de subproceso único para el procesador en particular en el sistema de referencia. . Para este sistema, simplemente dividiríamos 1.933,96 entre 32 núcleos físicos para obtener una "puntuación por núcleo" de 60,44. El Intel Xeon X7560 tiene una velocidad de reloj base de 2,26 GHz, con una velocidad de reloj Turbo de 2,66 GHz. Tiene un caché L3 compartido de 24 MB y una velocidad Intel QPI de 6,4 GT/s. Quick Path Interconnect (QPI) es una interconexión punto a punto entre la CPU y el controlador de memoria integrado, por lo que tener velocidades de QPI más altas significa un acceso a la memoria más rápido.

El tercer paso es buscar los resultados de referencia de TPC-E para los sistemas y procesadores de la generación actual, tratando de encontrar un resultado para un sistema que sea aproximadamente equivalente al tipo de sistema nuevo que está considerando. Desafortunadamente, esto a veces será difícil porque los proveedores de servidores no han estado presentando tantos sistemas nuevos como solían hacerlo, y porque siempre presentan sistemas que utilizan el procesador "insignia", con el mayor número de núcleos para una generación y familia de procesadores determinadas. Esto hace que la puntuación de rendimiento real de TPC-E sea más alta, pero también hace que un sistema que usa ese procesador sea mucho más costoso para licenciar SQL Server debido a la mayor cantidad de núcleos. Otro problema con estos modelos de procesadores "insignia" es que, por lo general, intercambian un mayor número de núcleos físicos por velocidades de reloj base más bajas, por lo que termina pagando costos de licencia mucho más altos y, de hecho, obtiene un rendimiento de CPU de subproceso único más bajo.

La sabiduría convencional sería que desearía un nuevo servidor de cuatro sockets para reemplazar su servidor de cuatro sockets existente. Con los servidores modernos de dos sockets, es posible que eso ya no sea necesario, según la magnitud de su carga de trabajo. Hubo un período, desde principios de 2012 hasta principios de 2014, en el que los nuevos procesadores de servidor de la familia Xeon E5 de dos sockets eran mucho más rápidos para el rendimiento de un solo subproceso que los nuevos procesadores de servidor de la familia Xeon E7 de cuatro sockets. Esta brecha de rendimiento se cerró bastante cuando se lanzó la familia Xeon E7 v2 Ivy Bridge-EX a principios de 2014. Desde entonces, las familias E5 y E7 están aún más cerca ahora, ya que ambas usan la microarquitectura Haswell.

Dada esta paridad cercana al rendimiento de la CPU, la elección de su modelo de servidor se reduce a la memoria general, la CPU y la capacidad de E/S. Los servidores actuales de dos sockets están prácticamente limitados a 768 GB de RAM con DIMM de 32 GB, mientras que los servidores actuales de cuatro sockets pueden tener 3 TB de RAM con DIMM de 32 GB. La mayoría de los clientes con los que me encuentro pueden ejecutar cómodamente su carga de trabajo en 768 GB de RAM, pero algunos realmente necesitan más que eso. Tanto los servidores de dos sockets como los de cuatro sockets pueden usar procesadores Haswell con 18 núcleos físicos cada uno, por lo que tiene un límite de 36 o 72 núcleos físicos en su sistema, según el número de sockets.

Para este ejercicio, hay un resultado de referencia TPC-E para un sistema Fujitsu Primergy RX2540 M1 de dos sockets con una puntuación de rendimiento TPC-E real de 3.772,08, utilizando dos procesadores Intel Xeon E5-2699 v3 Haswell-EP de dieciocho núcleos y 512 GB de RAM. El procesador Xeon E5-2699 v3 tiene una velocidad de reloj base de 2,3 GHz, con una velocidad de reloj Turbo de 3,6 GHz. Tiene un caché L3 compartido de 45 MB y una velocidad Intel QPI de 9,6 GT/s. Para este sistema, dividiríamos la puntuación real de 3.772,08 entre 36 núcleos físicos, para obtener una "puntuación por núcleo" de 104,78.

Este nuevo sistema de dos zócalos tendría casi el doble de la capacidad total de la CPU del sistema heredado, con aproximadamente 1,57 veces el rendimiento de un solo subproceso. Desde la perspectiva de la capacidad de la CPU y el rendimiento de un solo subproceso, estaría bastante seguro de que este nuevo sistema de dos zócalos sería un buen reemplazo para el sistema heredado. Este nuevo sistema también tendría ranuras de expansión PCIe 3.0, por lo que tendrá más capacidad total de E/S que el sistema anterior. Desafortunadamente, tiene 36 núcleos físicos que requerirán licencias de SQL Server 2014 Enterprise Edition, que serán bastante costosas.

Una mejor opción de procesador podría ser el Intel Xeon E5-2667 v3, que tiene ocho núcleos físicos, con una velocidad de reloj base de 3,2 GHz, una velocidad de reloj Turbo de 3,6 GHz, un caché L3 compartido de 20 MB y un procesador Intel de 9,6 GT/s. Velocidad QPI. Usando un poco de aritmética simple, podemos ajustar las diferencias entre el Xeon E5-2699 v3 y el Xeon E5-2667 v3 (ya que ambos son de la misma generación y familia de procesadores).

Primero, ajusto la diferencia en los recuentos de núcleos físicos. Si divides 8 entre 18, el resultado es 0,44, por lo que multiplicas 3772,08 por 0,44, obtenemos un resultado de 1676,48. A continuación, tenemos que ajustar la diferencia en la velocidad del reloj base entre estos dos procesadores. El E5-2667 v3 tiene una velocidad de reloj base un 39 % más alta que el procesador E5-2699 v3, por lo que multiplicaríamos 1.676,48 por 1,39 para obtener un estimado final. Puntaje TPC-E de 2330.31. Si dividimos esta puntuación estimada por 16 núcleos físicos, obtenemos un resultado de "puntuación por núcleo" de 145,64.

Por lo tanto, de acuerdo con este cálculo, todavía tendríamos más capacidad de CPU general que el sistema heredado, y un rendimiento de CPU de subproceso único mucho mejor utilizando el menor número de núcleos, el procesador Xeon E5-2667 v3 "optimizado en frecuencia" en el nuevo procesador de dos zócalos. sistema. La ventaja final de esta elección de procesador es un costo de licencia de SQL Server 2014 mucho más bajo, ya que solo necesitaríamos 16 licencias de núcleo en lugar de 36 licencias de núcleo, lo que representa un ahorro de alrededor de $136,000.00.

Con suerte, es un poco más claro cómo puede hacer un análisis simple para ayudarlo a decidir el procesador exacto que debe elegir para un nuevo servidor de base de datos, dada su carga de trabajo y restricciones presupuestarias. Este análisis es un poco más complicado cuando tienes que comparar procesadores de diferentes generaciones y familias, pero se pueden usar los mismos principios básicos. Profundizaré en este tema en un artículo futuro.