Compartir a través de


Recopilación de la línea de base: procedimientos recomendados de rendimiento de SQL Server en la VM de Azure

Se aplica a:SQL Server en máquina virtual de Azure

En este artículo se proporciona información para recopilar una línea de base de rendimiento como una serie de procedimientos recomendados y guías para optimizar el rendimiento de SQL Server en las máquinas virtuales (VM) de Azure.

Normalmente, hay un equilibrio entre optimizar los costos y optimizar el rendimiento. Esta serie de procedimientos recomendados de rendimiento se centra en obtener el mejor rendimiento para SQL Server en Azure Virtual Machines. Si su carga de trabajo es menos exigente, podría no necesitar todas las optimizaciones recomendadas. Tenga en cuenta sus necesidades de rendimiento, costos y patrones de carga de trabajo a medida que evalúa estas recomendaciones.

Información general

Para un enfoque prescriptivo, recopile contadores de rendimiento mediante PerfMon o LogMan y capture estadísticas de espera de SQL Server para comprender mejor las presiones generales y los posibles cuellos de botella del entorno de origen.

Comience por recopilar la CPU, la memoria, el IOPS, el rendimiento y la latencia de la carga de trabajo de origen en horas punta siguiendo la lista de comprobación de rendimiento de la aplicación.

Recopile datos durante las horas punta, como las cargas de trabajo durante un día laboral habitual, pero también otros procesos de carga alta, como el procesamiento de fin de jornada y las cargas de trabajo de ETL de fines de semana. Considere escalar los recursos para cargas de trabajo atípicamente pesadas, como el procesamiento de final de trimestre, y luego reducirlos una vez completada la carga de trabajo.

Utiliza el análisis de rendimiento para seleccionar el tamaño de VM que pueda escalar según los requisitos de rendimiento de tu carga de trabajo.

Almacenamiento

El rendimiento de SQL Server depende en gran medida del subsistema de E/S. Mida el rendimiento del almacenamiento por IOPS y caudal. A menos que la base de datos se ajuste a la memoria física, SQL Server pone las páginas de la base de datos dentro y fuera del pool de búferes constantemente. Trate los archivos de datos de SQL Server de forma diferente. El acceso a los archivos de registro es secuencial, excepto cuando es necesario revertir una transacción en la que se obtiene acceso de forma aleatoria a los archivos de datos, incluido tempdb. Si tiene un subsistema de E/S lento, los usuarios pueden experimentar problemas de rendimiento, como tiempos de respuesta lentos y tareas que no se completan debido a tiempos de espera.

Las máquinas virtuales de Azure Marketplace tienen archivos de registro en un disco físico que es independiente de los archivos de datos de manera predeterminada. El número y el tamaño de los archivos de datos de tempdb cumplen los procedimientos recomendados y se destinan a la unidad efímera D:\.

Los siguientes contadores de PerfMon pueden ayudar a validar el rendimiento de entrada/salida requerido por su SQL Server:

  • \LogicalDisk\Disk Reads/Sec (IOPS de lectura)
  • \LogicalDisk\Disk Writes/Sec (IOPS de escritura)
  • \LogicalDisk\Disk Read Bytes/Sec (requisitos de rendimiento de lectura para los datos, el registro y los archivos tempdb)
  • \LogicalDisk\Disk Write Bytes/Sec (requisitos de rendimiento de escritura para los datos, el registro y los archivos tempdb)

Mediante los requisitos de IOPS y rendimiento en sus niveles máximos, evalúe los tamaños de máquinas virtuales (VM) que coincidan con la capacidad de sus mediciones.

Si la carga de trabajo requiere 20 000 IOPS de lectura y 10 000 IOPS de escritura, Puede elegir E16s_v3 (con hasta 32 000 IOPS almacenados en caché y 25 600 IOPS sin almacenar en caché) o M16_s (con hasta 20 000 memorias caché y 10 000 IOPS sin almacenar en caché) con dos discos P30 seccionados mediante espacios de almacenamiento.

Asegúrese de que conoce los requisitos tanto de rendimiento como de IOPS de la carga de trabajo, ya que las máquinas virtuales tienen diferentes límites de escala para ambos.

Memoria

Realice un seguimiento de la memoria externa usada por el sistema operativo, así como la memoria que usa internamente SQL Server. La identificación de la presión de cualquiera de los componentes le ayuda a ajustar las máquinas virtuales e identificar las oportunidades de ajuste.

Los siguientes contadores de PerfMon pueden ayudar a validar el estado de la memoria de una máquina virtual de SQL Server:

Cómputo

El cómputo en Azure se administra de forma diferente a los entornos locales. Los servidores locales están diseñados para durar varios años sin una actualización debido a la sobrecarga de administración y al costo de adquirir nuevo hardware. La virtualización reduce algunos de estos problemas, pero las aplicaciones están optimizadas para aprovechar al máximo el hardware subyacente. Cualquier cambio significativo en el consumo de recursos requiere reequilibrar todo el entorno físico.

Este problema no existe en Azure. Puede crear fácilmente una nueva máquina virtual en una serie diferente de hardware o incluso en una región diferente.

En Azure, quiere aprovechar tantos recursos de la máquina virtual como sea posible. Configure máquinas virtuales de Azure para mantener la CPU media lo más alta posible sin afectar a la carga de trabajo.

Los siguientes contadores de PerfMon pueden ayudar a validar el estado del proceso de una máquina virtual de SQL Server:

  • \Processor Information(_Total)% de tiempo del procesador
  • \Proceso(sqlservr)% Tiempo del procesador

Nota:

Procure utilizar el 80% de su capacidad de cómputo, con picos que superen el 90%, pero no alcance el 100% en ningún período de tiempo sostenido. Básicamente, solo aprovisione los recursos computacionales que necesita la aplicación. Planee ampliar o reducir la escala según lo requiera el negocio.

Para obtener instrucciones detalladas sobre cada área de optimización:

Revise otros artículos sobre la máquina virtual de SQL Server en Introducción a SQL Server en Azure Virtual Machines. Si tiene alguna pregunta sobre las máquinas virtuales de SQL Server, consulte las Preguntas más frecuentes.