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

Comparación del rendimiento de las máquinas virtuales de Windows Azure, parte 1

A menos que haya estado haciendo un esfuerzo concertado para ignorarlo, es posible que haya escuchado que Microsoft realmente como que mueva gran parte de su infraestructura de base de datos de SQL Server a un centro de datos de Microsoft, ya sea que vaya a una base de datos SQL de Azure (que discutí recientemente aquí) o que la aloje en una máquina virtual de Windows Azure. Microsoft llama a estas máquinas virtuales persistentes instancias informáticas , y tienen dos niveles principales para elegir, que incluyen el nivel de cómputo básico y el nivel de cómputo estándar. Describen estos dos niveles como:

Nivel de cómputo básico :Este nuevo nivel de instancias informáticas tiene una configuración similar al nivel Estándar con precios más bajos. Estas instancias no incluyen balanceador de carga ni escalado automático. Son ideales para aplicaciones de producción de instancia única, cargas de trabajo de desarrollo, servidores de prueba y aplicaciones de procesamiento por lotes que pueden no requerir estas funciones. Actualmente, el nivel de cómputo básico está disponible solo para las instancias de propósito general. Estas instancias van desde Básico A0 a Básico A4.

Nivel de cómputo estándar :este nivel de instancias informáticas proporciona un conjunto óptimo de recursos informáticos, de memoria y de E/S para ejecutar una amplia gama de aplicaciones. Estas instancias incluyen funciones de escalado automático y balanceo de carga sin costo adicional. El nivel de cómputo estándar está disponible en las instancias de uso general, uso intensivo de memoria y uso intensivo de cómputo. Estas instancias van desde Estándar A0 a Estándar A7.

Hay varias ventajas importantes para alojar su infraestructura de SQL Server en una máquina virtual de Windows Azure. En primer lugar, no tiene costos de capital por almacenamiento o hardware, ni mantenimiento continuo del almacenamiento o hardware. En segundo lugar, no tiene costos de licencia de SO o SQL Server (cuando usa una imagen de SQL de la galería estándar de máquinas virtuales de Azure). En tercer lugar, puede crear una nueva máquina virtual de Azure que ya tenga SQL Server instalado en unos minutos (aunque puede llevar un poco más de tiempo configurar completamente el sistema operativo y la instancia de SQL Server según sus requisitos exactos). En el futuro, seguirá dependiendo de usted instalar las actualizaciones de Windows y SQL Server, pero no tendrá que preocuparse por cosas como el firmware, el BIOS o las actualizaciones de controladores.

Si desea utilizar Windows Azure Virtual Machines para hospedar toda o parte de su infraestructura de SQL Server, debe tener en cuenta los detalles de precios actuales que están disponibles para el centro de datos de Azure específico en el que desea hospedar sus máquinas virtuales, ya que los precios pueden varían en los diferentes centros de datos de Microsoft. Actualmente, Microsoft tiene 13 tamaños diferentes de máquinas virtuales de Windows Azure, como se detalla en su página Tamaños de máquinas virtuales y servicios en la nube para Azure. Microsoft redujo el precio por hora para las instancias con uso intensivo de memoria (Estándar A5, Estándar A6 y Estándar A7) en un 18 % en la mayoría de sus centros de datos el 1 de mayo de 2014, y el precio que se muestra en la Tabla 1 refleja esos nuevos precios más bajos.

La puntuación de un solo núcleo y la puntuación de varios núcleos en las dos columnas de la derecha de la Tabla 1 son las puntuaciones promedio que observé usando la versión de 32 bits del procesador Geekbench 3.05 y el punto de referencia de la memoria en un centro de datos de Windows Server 2012 R2 de muestra Máquina virtual en el centro de datos del este de EE. UU. Estos puntajes pueden o no ser representativos de lo que verá.

Tamaño de máquina virtual Núcleos de CPU Memoria (GB) Coste por hora Costo Mensual Puntuación de núcleo único Puntuación multinúcleo
Básico A0 1 (compartido) 0,75 $0.018 ~$14 507 498
Básico A1 1 1,75 $0.074 ~$56 679 670
Básico A2 2 3.50 $0.148 ~$111 709 1358
Básico A3 4 7,00 $0.296 ~$221 717 2472
Básico A4 8 14.00 $0.592 ~$441 724 4042
Estándar A0 1 (compartido) 0,75 $0.020 ~$15 492 502
Estándar A1 1 1,75 $0.090 ~$67 1068 1083
Estándar A2 2 3.50 $0.180 ~$134 1069 2002
Estándar A3 4 7,00 $0.360 ~$268 1070 3593
Estándar A4 8 14.00 $0.720 ~$536 1094 6446
Estándar A5 2 14.00 $0.330 ~$246 1080 2026
Estándar A6 4 28,00 $0.660 ~$492 1080 3686
Estándar A7 8 56,00 $1.320 ~$983 1056 6185

Tabla 1:Especificaciones de máquinas virtuales seleccionadas para Windows Azure en el centro de datos del este de EE. UU.

Actualmente, Microsoft tiene nueve centros de datos que pueden albergar nuevas máquinas virtuales persistentes, que incluyen el este de EE. UU., el oeste de EE. UU., el sur de Brasil (versión preliminar), el norte de Europa, el oeste de Europa, el este de Asia, el sudeste de Asia, el oeste de Japón y el este de Japón. Según Microsoft, "A1 es el tamaño más pequeño recomendado para las cargas de trabajo de producción" y debe seleccionar "una máquina virtual con 4 u 8 núcleos de CPU cuando utilice SQL Server Enterprise Edition". Una referencia útil, aunque algo anticuada, para ejecutar SQL Server en una máquina virtual de Windows Azure es la Guía de rendimiento para SQL Server en máquinas virtuales de Windows Azure que se publicó en junio de 2013.

Características de la máquina virtual de Windows Azure

Cuando observa las propiedades de la CPU en la pestaña Rendimiento en el Administrador de tareas de Windows Server 2012 R2 (en la Figura 1 y la Figura 2), notará que informa que está usando un procesador AMD Opteron 4171 HE de 45 nm relativamente antiguo, que se ejecuta a una velocidad de 2.1GHz. Este procesador de seis núcleos en particular se presentó en junio de 2010, como parte de la familia de Lisboa de dos zócalos. El sufijo HE significa que es un modelo eficiente de energía de "baja potencia" que no es una buena opción para el uso de SQL Server, ya que renuncia a una cantidad significativa de rendimiento por una cantidad relativamente pequeña de uso de energía reducido. Después de investigar un poco, me dijeron que este procesador es un procesador OEM especial para los centros de datos de Microsoft.


Figura 1:Máquina virtual A0 básica en datos del este de EE. UU. Centro


Figura 2:Máquina virtual A7 estándar en datos del este de EE. UU. Centro

El otro gran problema con este procesador, además de su antigüedad y el rendimiento relativamente bajo de un solo subproceso, es el hecho de que solo tiene seis núcleos físicos. Este es un problema con los tamaños de máquina virtual A4 básico, A4 estándar y A7 estándar, que tienen dos nodos NUMA y ocho núcleos físicos en total. Esto significaría que una máquina virtual de ese tamaño cruzaría un nodo NUMA en el host físico subyacente, lo que no es una buena idea para el rendimiento de la memoria. Me cuesta creer que Microsoft haría esto a propósito. También me cuesta creer que todas las máquinas virtuales de Azure en todos los centros de datos que he probado hasta ahora usan exactamente el mismo procesador AMD antiguo. Es de conocimiento bastante común que Microsoft tiene al menos tres generaciones diferentes de hardware (Gen 1, Gen 2 y Gen 3) que han usado hasta ahora en sus centros de datos de Azure, que ofrecen un rendimiento de máquina virtual diferente. Después de algunas consultas más, descubrí que este procesador AMD Opteron 4171 HE es un procesador Azure Gen 2.

Puede navegar por la base de datos en línea Geekbench 3 de los resultados de referencia cargados, buscando sistemas que utilicen el procesador AMD Opteron 4171 HE aquí. Puede notar que todos los resultados de este procesador parecen ser para una máquina virtual de Microsoft, lo cual también es bastante curioso. El Administrador de tareas de Windows Server 2012 R2 informa la caché L1 como "N/A" y ni siquiera enumera los tamaños de caché L2 y L3 en estas máquinas virtuales de Azure. Otra prueba curiosa es el hecho de que las instancias estándar tienen puntuaciones Geekbench 3 un 50 % más altas que las instancias básicas equivalentes cuando tienen exactamente el mismo número total de núcleos de procesador y tamaños de memoria, tanto para la puntuación de un solo núcleo como para la de varios núcleos. puntaje. Esta gran variación no tiene ningún sentido si la máquina host subyacente está usando el mismo procesador.

Resumen

Toda esta evidencia inicialmente me llevó a la conclusión de que Microsoft probablemente estaba oscureciendo el procesador real en la máquina host. Pensé que podrían estar haciendo esto para tratar de evitar que las personas aprovisionen deliberadamente varias VM hasta que una VM se ejecute en un hardware de host más nuevo y más rápido. Resulta que Microsoft no es tan inteligente. Me han asegurado que Microsoft no altera la identidad de la CPU en una máquina virtual de Azure. Hay procesadores Azure Gen 3 más nuevos que puede obtener en una VM de Azure, a medida que aprovisione nuevas VM en el futuro. Otra posible razón de mis resultados fue que es probable que utilicen algún tipo de control para limitar el rendimiento de las máquinas virtuales a un nivel uniforme y confiable, independientemente del hardware del host subyacente, de modo que puedan alojar más máquinas virtuales en menos hardware con el tiempo. Este sería un curso de acción inteligente para un hoster de IaaS.

Las puntuaciones relativamente bajas de Geekbench 3.05 (consulte la figura 3) incluso para las máquinas virtuales de Azure más grandes significan que está renunciando a una cantidad significativa de rendimiento de memoria y procesador en comparación con un servidor físico equivalente de dos sockets con la misma cantidad de núcleos de procesador y memoria.


Figura 3:Resultados Geekbench 3.05 de 32 bits para Standard Máquina virtual A4 en el centro de datos del este de EE. UU.

Muchas cargas de trabajo de SQL Server se ejecutarán perfectamente bien con este nivel de rendimiento de VM, aunque un poco más lento de lo que puede estar acostumbrado. Si tiene en cuenta los ahorros en licencias de SQL Server 2014 Enterprise Edition de una máquina de ocho núcleos, más el gasto de capital de un servidor modesto de dos sockets y su almacenamiento asociado, podría permitirse ejecutar una máquina virtual A7 estándar las 24 horas, los 7 días de la semana por aproximadamente cinco a seis años. Dado ese tipo de ROI, puedo ver que muchas organizaciones toman la decisión económica de mover al menos una parte de su infraestructura de SQL Server a Azure Virtual Machines. Siempre que su carga de trabajo pueda ejecutarse en una VM de 56 GB o menos, y siempre que tenga menos rendimiento de CPU y memoria que una computadora portátil típica reciente, este es un curso de acción racional. Microsoft anunció recientemente la disponibilidad de instancias intensivas de cómputo A8 y A9 VM más grandes y mucho más rápidas, que utilizan procesadores Intel Xeon E5-2670. Esta será una gran mejora en el rendimiento con respecto a los procesadores Azure Gen 2.

Echaré un vistazo al rendimiento de E/S en Azure Virtual Machines en un próximo artículo.