Explicación de las características de rendimiento de los discos

Completado

A menudo, el rendimiento de las aplicaciones depende de la rapidez con la que pueden leer y escribir datos. Para saber cómo mejorar ese rendimiento, primero tenemos que saber cómo se mide y qué opciones y valores de configuración le afectan.

Características de rendimiento de los discos

Para elegir el tipo de disco correcto, es importante conocer los indicadores de rendimiento. Los siguientes indicadores expresan el rendimiento:

  • IOPS: IOPS es el número de solicitudes que una aplicación envía a los discos en un segundo. IOPS afecta directamente al rendimiento de su aplicación. Algunas aplicaciones, como los sitios web de venta minorista, necesitan un elevado número de operaciones IOPS para administrar todas las solicitudes de E/S pequeñas y aleatorias, que deben procesarse rápidamente para que el sitio mantenga la capacidad de respuesta. Los discos de mayor rendimiento tienen valores de IOPS más altos.
  • Rendimiento: El rendimiento es la cantidad de datos que la aplicación envía a los discos en un intervalo especificado. También se denomina velocidad de transferencia de datos y se mide en MB/s. Si la aplicación realiza E/S con bloques grandes de datos, requiere un alto rendimiento. Los discos de rendimiento más alto tienen un mayor rendimiento.
  • Latencia: La latencia indica el tiempo que tarda la aplicación en enviar una solicitud al disco y obtener una respuesta. La latencia limita las operaciones IOPS efectivas. Por ejemplo, (con una profundidad de cola de 1) si un disco puede controlar 5000 IOPS, pero cada operación tarda 10 ms en procesarse, la aplicación estará limitada a 100 operaciones por segundo debido al tiempo de procesamiento. La latencia mejora considerablemente si se habilita el almacenamiento en caché de host de solo lectura.

IOPS frente a rendimiento

El procesamiento y el número de operaciones IOPS tienen una relación directa. El cambio de uno afecta directamente al otro. Para obtener un límite teórico del procesamiento, puede usar la fórmula siguiente: IOPS x tamaño de E/S = procesamiento. Es importante tener en cuenta ambos valores cuando se planea una aplicación.

En el caso de los Ultra Disks y los discos administrados SSD prémium v2, funciona un poco de manera diferente, ya que puede ajustar de forma independiente el tamaño del disco, las operaciones IOPS y el rendimiento. Los ajustes de IOPS o rendimiento de los Ultra Disks y los discos administrados SSD prémium v2 se pueden realizar en tiempo de ejecución, sin desasociar el disco de la máquina virtual.

IOPS de los discos Ultra

Los discos Ultra admiten límites de IOPS de 300 IOPS/GiB, hasta un máximo de 160 000 IOPS por disco. Para conseguir las IOPS objetivo en el disco, asegúrese de que la cantidad de IOPS de disco seleccionada sea menor que el límite de IOPS de la máquina virtual.

El límite máximo actual de IOPS para una sola máquina virtual en tamaños disponibles con carácter general es de 160 000. Los discos Ultra con mayor IOPS se pueden usar como discos compartidos para admitir varias máquinas virtuales.

El valor mínimo garantizado de IOPS por disco es 1 IOPS/GiB, con una línea de base general mínima de 100 IOPS. Por ejemplo, si aprovisionó un disco Ultra de 4 GiB, el valor mínimo de IOPS para ese disco es 100, en lugar de cuatro.

Rendimiento de discos Ultra

El límite de rendimiento de un solo disco Ultra es de 256 KiB/s por cada IOPS aprovisionada, y hasta 4000 MBps como máximo por disco (donde MBps = 10^6 bytes por segundo). El rendimiento mínimo garantizado por disco es 4 KiB/s por cada IOPS aprovisionada, con una base de referencia total mínima de 1 MBps.

IOPS de SSD prémium v2

Todos los discos SSD prémium v2 tienen unas IOPS de línea base de 3000 gratuitas. A partir de 6 GiB, el número máximo de IOPS que un disco puede tener aumenta a una tasa de 500 por GiB, hasta 80 000 IOPS. Por lo tanto, un disco de 8 GiB puede tener hasta 4000 IOPS y uno de 10 GiB puede tener hasta 5000 IOPS. Para poder establecer 80 000 IOPS en un disco, ese disco debe tener al menos 160 GiB. Aumentar el número de IOPS más allá de 3000 aumenta el precio del disco.

Rendimiento de SSD prémium v2

Todos los discos SSD prémium v2 tienen un rendimiento de línea base de 125 MB/s, de forma gratuita. A partir de 6 GiB, el rendimiento máximo que se puede establecer aumenta en 0,25 MB/s por IOPS establecida. Si un disco tiene 3000 IOPS, el rendimiento máximo que puede establecer es de 750 MB/s. Para aumentar el rendimiento de este disco más allá de 750 MB/s, se debe aumentar su número de IOPS. Por ejemplo, si ha aumentado las IOPS a 4000, el rendimiento máximo que se puede establecer es de 1000. 1200 MB/s es el rendimiento máximo admitido para los discos que tienen 5000 IOPS o más. Aumentar el rendimiento más allá de 125 MB/s aumenta el precio del disco.

Límite de E/S de la máquina virtual

Ahora que sabe qué discos están disponibles en Azure, debe combinar cada una de sus máquinas virtuales con el tipo de disco adecuado. Las máquinas virtuales tienen sus propios límites de operaciones IOPS de almacenamiento, que pueden afectar al rendimiento general de la aplicación cuando se combinan con las operaciones IOPS de los discos.

Si no selecciona el tamaño de máquina virtual correcto para el rendimiento de almacenamiento que una aplicación requiere, la propia máquina virtual se convierte en un cuello de botella.

Por ejemplo, suponga que la aplicación realiza una solicitud que requiere 15 000 IOPS. Ha aprovisionado una máquina virtual Standard_D8s_v3, con un disco de sistema operativo P30 y dos discos de datos SSD prémium con la SKU P40. Cada disco de datos puede controlar 7500 IOPS y, por tanto, pueden satisfacer la demanda de la aplicación, pero la propia máquina virtual tiene un límite máximo de 12 800 IOPS, que es el número real de operaciones IOPS que obtendrá la aplicación. En la siguiente figura, se ilustra este ejemplo.

Diagram that depicts virtual machine input output capping.

El escenario que se muestra en el ejemplo anterior se conoce como límite de E/S de la máquina virtual. En este escenario, la aplicación solicita una cantidad de procesamiento y operaciones IOPS que el disco puede administrar, pero la máquina virtual no puede satisfacer estos requisitos.

Para diagnosticar los problemas de rendimiento que causa el límite de E/S de la máquina virtual, puede usar las siguientes métricas:

  • Porcentaje de IOPS en caché de la máquina virtual consumidas.
  • Porcentaje de ancho de banda en caché de la máquina virtual consumido.
  • Porcentaje de IOPS no almacenadas en caché de la máquina virtual consumidas.
  • Porcentaje de ancho de banda no almacenado en caché de la máquina virtual consumido.

Límite de E/S de los discos

Puede encontrarse en otras situaciones en las que la solución de almacenamiento no satisfaga las demandas de una aplicación. Sin embargo, el cuello de botella puede deberse a que haya seleccionado el nivel de rendimiento incorrecto para los discos.

Piense en el mismo ejemplo en el que la aplicación requiere 15 000 IOPS de la máquina virtual, pero ha elegido la siguiente configuración:

  • Máquina virtual Standard_D16s_v4 con 25 600 IOPS.
  • Disco del sistema operativo P20 con 2300 IOPS.
  • Dos discos de datos P30 y cada uno admite 5000 IOPS.

En este escenario, la demanda de la aplicación se dividirá en tres solicitudes diferentes:

  • Desde el disco del sistema operativo, se solicitan 2300 IOPS.
  • Desde el disco de datos, se solicitan 5000 IOPS.

El total de IOPS que la máquina virtual devolverá a la aplicación será 12 300, que es la suma de las operaciones IOPS proporcionadas por el sistema operativo y por los discos de datos.

Este escenario se conoce como límite de E/S de los discos, cuando los propios discos no pueden satisfacer las demandas de la aplicación.

Diagram that depicts disk input output capping.

Para diagnosticar el límite de E/S de los discos, utilice las siguientes métricas:

  • Porcentaje de IOPS de los discos de datos consumidas.
  • Porcentaje de ancho de banda de los discos de datos consumido.
  • Porcentaje de IOPS del disco del SO consumidas.
  • Porcentaje de ancho de banda del disco del SO consumido.

Almacenamiento en caché en disco

Una memoria caché es un componente especializado que almacena datos, normalmente en la memoria, para que la aplicación pueda acceder a ellos más rápidamente. Los datos de una memoria caché suelen ser datos que se han leído antes o que son el resultado de un cálculo anterior. El objetivo es que las aplicaciones accedan a los datos con más rapidez en la memoria caché que en el disco. El almacenamiento en caché en disco no está disponible en los Ultra Disks ni en SSD prémium v2.

El almacenamiento en caché utiliza un almacenamiento temporal especializado y, en ocasiones, costoso, que tiene un rendimiento de lectura y escritura más rápido que el almacenamiento permanente. Dado que, con frecuencia, el almacenamiento en caché es limitado, puede ser necesario decidir qué operaciones de datos se beneficiarán más de su uso. Pero, incluso cuando el almacenamiento en caché esté ampliamente disponible, como en Azure, es importante conocer los patrones de carga de trabajo de cada disco antes de decidir qué tipo de almacenamiento en caché usar.

El almacenamiento en caché de lectura intenta acelerar la recuperación de datos. En lugar de leer los datos en el almacenamiento permanente, la aplicación los lee en la memoria caché, que es más rápida.

Es importante tener en cuenta que el almacenamiento en caché de lectura resulta útil cuando hay cierta previsibilidad en la cola de lectura, como en un conjunto de lecturas secuenciales. En el caso de las operaciones de E/S aleatorias, en las que los datos a los que se accede están dispersos en el almacenamiento, el almacenamiento en caché puede suponer poca o ninguna ventaja e, incluso, puede reducir el rendimiento del disco.

El almacenamiento en caché de escritura intenta acelerar la escritura de los datos en el almacenamiento persistente. Con una caché de escritura, la aplicación puede considerar los datos que deben guardarse.

En realidad, cuando se usa el almacenamiento en caché de escritura, los datos se ponen en cola en una memoria caché, a la espera de que se escriban en un disco. Como se puede imaginar, este mecanismo puede ser un posible punto de error, como cuando un sistema se apaga antes de que estos datos se escriban en la caché. Algunos sistemas, como SQL Server, administran por sí solos la tarea de escribir los datos de la memoria caché en el almacenamiento de disco persistente.

Límites de las máquinas virtuales con almacenamiento en caché y sin almacenamiento en caché

Ahora que ya sabe cómo el almacenamiento en caché puede mejorar el rendimiento de lectura y escritura de datos en el disco, debe conocer cómo afecta el almacenamiento en caché al rendimiento de las máquinas virtuales.

El rendimiento de una máquina virtual depende de los límites de IOPS y los límites de rendimiento que impone el tamaño de la máquina virtual. Todas las máquinas virtuales del nivel prémium tienen límites diferentes para las operaciones IOPS y para el procesamiento en función de que estén configuradas con almacenamiento en caché o sin almacenamiento en caché. Puede mejorar el rendimiento de una máquina virtual para satisfacer una demanda mayor de operaciones IOPS y procesamiento si habilita el almacenamiento en caché del host de la máquina virtual.

En la siguiente tabla, se incluyen ejemplos que muestran la diferencia de rendimiento del ancho de banda y el procesamiento de disco con almacenamiento en caché y sin almacenamiento en caché.

Nombre del tamaño de VM Rendimiento máximo de almacenamiento temporal y en caché: IOPS/MB/s (tamaño de caché en GiB) Rendimiento máximo de disco no almacenado en caché (IOPS/MB/s)
Standard_D2s_v3 4000/32 (50) 3200/48
Standard_D4s_v3 8000/64 (100) 6400/96
Standard_D8s_v3 16 000/128 (200) 12 800/192
Standard_D64s_v3 128 000/1024 (1600) 80 000/1200

El almacenamiento en caché del host puede ayudar a evitar cuellos de botella en las máquinas virtuales.

En el ejemplo anterior del límite de operaciones de E/S de una máquina virtual, la aplicación requería 15 000 IOPS. Los dos discos de datos pueden atender esa demanda, pero la máquina virtual Standard_D8s_v3 solo puede ofrecer 12 800 IOPS cuando no tiene configurado el almacenamiento en caché.

Si configura el almacenamiento en caché del host en la máquina virtual Standard_D8s_v3, puede obtener 16 000 IOPS almacenadas en caché, que es más de lo que demanda la aplicación.