Microsoft está facilitando cada vez más la ejecución de SQL Server 2014 en una máquina virtual de Azure en uno de los diecisiete centros de datos de Azure de Microsoft. Puede ejecutar una máquina virtual preconfigurada con una instancia de SQL Server 2014 preconfigurada desde la galería de Azure en su elección de máquina virtual de Azure de cualquier tamaño. Una de las opciones de la galería es "SQL Server 2014 Enterprise Optimized for Transactional Workloads" que se ejecuta en Windows Server 2012 R2. Una cosa buena de usar una imagen de galería preconfigurada es que no tiene que pagar ninguna licencia de SQL Server 2014. Simplemente paga el costo por hora de la edición de SQL Server y el tamaño de la máquina virtual que elija.
Opciones de configuración de SQL Server 2014
Microsoft explica que "Esta imagen de Enterprise Edition está optimizada para cargas de trabajo OLTP y está diseñada para tamaños de VM que incluyen A4, A7, A8 y A9. Una vez implementada, la VM viene con espacios de almacenamiento de Windows preconfigurados". Microsoft también realiza algunos trabajos de configuración a nivel de instancia en SQL Server 2014, aunque no van lo suficientemente lejos con lo que yo consideraría mejores prácticas estándar.
Crean ocho archivos de datos tempdb que tienen un tamaño de 25600 MB, con un incremento de crecimiento automático de 1024 MB, que es una buena opción predeterminada. También habilitan TF1117 y TF1118 como indicadores de seguimiento de inicio, que también son buenas opciones para SQL Server. Finalmente, Microsoft también permite la inicialización instantánea de archivos y el bloqueo de páginas en la memoria del sistema operativo, con lo que también estoy de acuerdo.
Preferiría que Microsoft también hiciera algunos cambios en estas opciones de configuración a nivel de instancia:
- predeterminado de compresión de copia de seguridad
- umbral de costo para el paralelismo
- máximo grado de paralelismo
- memoria máxima del servidor (MB)
- optimizar para cargas de trabajo ad hoc
La compresión de respaldo debe estar habilitada de forma predeterminada en la mayoría de los casos. El umbral de costo para el paralelismo a menudo debe elevarse a un valor más alto que el valor predeterminado de 5, según su carga de trabajo. Por lo general, el grado máximo de paralelismo debe cambiarse a un valor no predeterminado en función de la cantidad de núcleos en un nodo NUMA. Esta configuración también depende de su carga de trabajo. La memoria máxima del servidor debe establecerse en un valor no predeterminado según la cantidad de RAM en la máquina virtual y lo que está ejecutando (además del motor de base de datos de SQL Server) en la máquina virtual. Finalmente, creo que la optimización para cargas de trabajo ad hoc debería estar habilitada, prácticamente en todos los casos.
En defensa de Microsoft, sería difícil hacer una elección de configuración satisfactoria para algunos de estos elementos sin conocer (por adelantado) los detalles del tamaño de su máquina virtual y la carga de trabajo esperada del servidor de la base de datos. Eso deja la tarea en sus manos, al igual que con una instancia de SQL Server local.
Tamaño de la máquina virtual de Azure
Aunque puede elegir cualquier máquina virtual, desde A0 Basic hasta A9 Standard, Microsoft recomienda que elija una máquina virtual de tamaño A4 Standard, A7 Standard, A8 Standard o A9 Standard para uso en producción. Los detalles de precios de las máquinas virtuales de SQL Server se enumeran aquí.
Mirando las especificaciones comparativas para estas recomendaciones en la Tabla 1, es difícil entender por qué querría elegir una máquina estándar A4, ya que cuesta la misma cantidad por hora que las máquinas estándar A7 o A8 más grandes. Mirando la documentación en línea, inicialmente no está muy claro cuál es la diferencia real entre una máquina estándar A7 y A8. Profundizando un poco más, la máquina A8 Standard se considera una instancia de computación intensiva, que se supone que utiliza un procesador Intel Xeon E5-2670 de 2,6 GHz más rápido, junto con dos adaptadores de red (uno de 10 Gbps y otro de 32 Gbps con capacidad RDMA).
La máquina virtual A7 Standard utiliza un procesador Intel Xeon E5-2660 de 2,2 GHz algo más lento, mientras que la conectividad de red parece ser Ethernet estándar de 1 Gbps. Si bien esto suena como una diferencia significativa en el rendimiento del procesador y de la red, en realidad no es el problema principal con las máquinas virtuales de la serie A para el uso de SQL Server.
Tamaño de máquina virtual | Tarifa estándar de SQL | Tarifa empresarial de SQL | Recuento de núcleos | Cantidad de RAM |
---|---|---|---|---|
A4 estándar | $0.80/hora | $3.00/hora | 8 | 14 GB |
A7 estándar | $0.80/hora | $3.00/hora | 8 | 56 GB |
A8 estándar | $0.80/hora | $3.00/hora | 8 | 56 GB |
A9 estándar | $1.60/hora | $6.00/hora | 16 | 112 GB |
Tabla 1:Información de la máquina virtual de SQL Server serie A
El principal problema con todas las máquinas virtuales de la serie A es el rendimiento bastante miserable del subsistema de E/S, a pesar de que Microsoft ha preconfigurado el subsistema de disco con espacios de almacenamiento de Windows para obtener el mejor rendimiento posible dadas las limitaciones de rendimiento inherentes del A- serie máquinas virtuales y hosts. La figura 1 muestra los resultados de CrystalDiskMark para la unidad E:de una máquina estándar A4 del centro de datos de Azure del este de EE. UU., que está destinada a los archivos de registro de transacciones.
Figura 1:Resultados de CrystalDiskMark estándar A4
Una alternativa mucho mejor para SQL Server son las máquinas virtuales de la serie D. Estas máquinas virtuales cuestan lo mismo por hora que las máquinas virtuales de la serie A de tamaño comparable, y tienen almacenamiento SSD local que solo debe usarse para tempdb y/o para archivos de extensiones de grupo de búfer (BPE), ya que no son persistentes. Algunas especificaciones relevantes para las máquinas virtuales de la serie D se muestran en la Tabla 2.
Tamaño de máquina virtual | Tarifa estándar de SQL | Tarifa empresarial de SQL | Recuento de núcleos | Cantidad de RAM |
---|---|---|---|---|
Estándar D4 | $0.80/hora | $3.00/hora | 8 | 28 GB |
Estándar D13 | $0.80/hora | $3.00/hora | 8 | 56 GB |
Estándar D14 | $1.60/hora | $6.00/hora | 16 | 112 GB |
Tabla 2:Información de la máquina virtual de SQL Server serie D
La máquina D4 Standard cuesta lo mismo que una máquina A4 Standard, pero tiene el doble de RAM y algo de almacenamiento SSD local. La máquina D13 Standard cuesta lo mismo que una máquina A7 o A8 Standard, pero con el beneficio del almacenamiento SDD local. La máquina D14 Standard cuesta lo mismo que una máquina A9 Standard, pero también tiene la ventaja del almacenamiento SSD local. Dada esta información, tiene poco sentido usar una máquina virtual de la serie A para SQL Server.
Lamentablemente, las unidades permanentes para los datos y archivos de registro de SQL Server también tienen un rendimiento de E/S bastante inferior al estándar en CrystalDiskMark, como se muestra en las Figuras 2 y 3.
Figura 2:Resultados de CrystalDiskMark estándar D14 | Figura 3:Resultados de CrystalDiskMark estándar D14 |
El rendimiento del SSD local está relacionado con el tamaño de la máquina virtual de Azure, y los tamaños más grandes obtienen un mejor rendimiento del SSD local. Los resultados de rendimiento de CrystalDiskMark para una máquina D14 Standard en el centro de datos Azure del este de EE. UU. se muestran en la Figura 4.
Figura 4:Resultados de CrystalDiskMark estándar D14 para almacenamiento SSD local
La unidad F:(para archivos de datos de SQL Server) tiene resultados ligeramente mejores que la unidad E:, pero ambas unidades tienen un nivel de rendimiento muy bajo para SQL Server.
Conclusión
Parece bastante claro que las máquinas de la serie D son mejores para el uso de SQL Server que las máquinas de la serie A. También tiene sentido prestar mucha atención al tamaño y el precio de la máquina virtual que decide aprovisionar para SQL Server, ya que puede obtener más RAM al mismo costo por hora. Las dos mejores opciones desde una perspectiva de rendimiento son las máquinas virtuales estándar D13 o D14.
Las instancias de SQL Server 2014 preconfiguradas de la galería de Azure pueden ahorrarle mucho dinero en costos de licencias de SQL Server, y gran parte del trabajo de configuración necesario ya está completo en la imagen base. Aún debe ingresar y realizar algunos cambios de configuración finales según su preferencia y carga de trabajo. Finalmente, debe tomarse el tiempo para ejecutar algunos puntos de referencia de rendimiento en su máquina virtual para que comprenda el nivel de rendimiento que puede ofrecer.