Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado flexibles ✔️ Conjuntos de escalado uniformes
En este artículo se explica cómo interactúan Azure Virtual Machines (VM) y los límites de rendimiento del disco administrado. También se describe cómo diagnosticar cuellos de botella de E/S de disco y optimizar el rendimiento del almacenamiento.
Cómo interactúan los límites de rendimiento de las máquinas virtuales de Azure y de los discos administrados
Azure las máquinas virtuales tienen operaciones de entrada y salida por segundo (IOPS) y límites de rendimiento en función del tipo y el tamaño de la máquina virtual. Los discos de sistema operativo administrados y los discos de datos tienen sus propios límites de IOPS y rendimiento.
Asignación y rendimiento de discos
Los discos conectados a una máquina virtual Azure usan tres rutas de acceso de E/S. En el diagrama siguiente se muestra cómo Azure asigna ancho de banda y operaciones de entrada y salida por segundo (IOPS) en esas rutas de acceso en tiempo real.
La primera ruta de acceso de E/S es la ruta de acceso del disco administrado sin almacenar en caché. Las operaciones de E/S usan esta ruta de acceso cuando se usa un disco administrado y se establece el almacenamiento en caché del host en none. Las operaciones de E/S que usen esta ruta de acceso se ejecutan en función del aprovisionamiento de nivel de disco y, a continuación, el aprovisionamiento de nivel de red de la máquina virtual para IOPS y el rendimiento.
La segunda ruta de acceso de E/S es la ruta de acceso del disco administrado almacenada en caché. La E/S del disco administrado almacenado en caché usa un SSD que está cerca de la máquina virtual. Este SSD tiene sus propias IOPS y rendimiento aprovisionados, y aparece como "aprovisionamiento en el nivel de SSD" en el diagrama.
Cuando un disco administrado almacenado en caché inicia una lectura, la solicitud comprueba primero si los datos están en el SSD del servidor. Si los datos no están presentes, se produce un error almacenado en caché. A continuación, la E/S se ejecuta en función del aprovisionamiento de nivel de SSD, el aprovisionamiento de nivel de disco y, a continuación, el aprovisionamiento de nivel de red de la máquina virtual para IOPS y el rendimiento.
Cuando el SSD del servidor inicia lecturas en E/S almacenadas en caché que están presentes en el SSD del servidor, se produce una acierto de caché. A continuación, la E/S se ejecuta en función del aprovisionamiento en el nivel de SSD. Escribe que un disco administrado almacenado en caché inicia siempre la ruta de acceso de un error almacenado en caché. Pasan por el aprovisionamiento a nivel de SSD, a nivel de disco y a nivel de red de máquinas virtuales.
La tercera ruta de acceso es para el disco temporal. Solo está disponible en máquinas virtuales que admiten discos temporales. Una operación de E/S que use esta ruta de acceso se ejecuta en función del aprovisionamiento de nivel de SSD para IOPS y rendimiento.
En el diagrama siguiente se muestra un ejemplo de estas limitaciones. El sistema impide que una máquina virtual de Standard_D2s_v3 alcance el potencial de 5000 IOPS de un disco P30, ya sea en caché o no, debido a los límites en los niveles de SSD y red.
Azure usa un canal de red con prioridad para el tráfico de disco. El tráfico de disco tiene prioridad sobre el tráfico de red de prioridad baja. Esta priorización ayuda a los discos a mantener su rendimiento esperado si hay una contención de red.
Del mismo modo, Azure Storage controla las contenciones de recursos y otros problemas en segundo plano, con el equilibrio de carga automático. Azure Storage asigna recursos necesarios al crear un disco y aplica equilibrio proactivo y reactivo de los recursos para controlar el nivel de tráfico. Este comportamiento garantiza aún más que los discos pueden mantener sus objetivos de IOPS y rendimiento esperados. Use métricas de nivel de máquina virtual y de nivel de disco para realizar un seguimiento del rendimiento y configurar alertas según sea necesario.
Limitación de la E/S de disco
El rendimiento de la aplicación se limita cuando solicita más IOPS o rendimiento que los que se asignan a las máquinas virtuales o a los discos conectados. Cuando se limita, la aplicación experimenta un rendimiento poco óptimo. Esta condición puede provocar consecuencias negativas, como una mayor latencia. En los ejemplos siguientes se usan IOPS, pero la misma lógica se aplica al rendimiento.
Ejemplo de configuración de limitación a nivel de disco:
- Standard_D8s_v3
- IOPS no almacenadas en caché: 12.800
- Disco del sistema operativo E30
- IOPS: 500
- Dos discos de datos E30 × 2
- IOPS: 500
La aplicación que se ejecuta en la máquina virtual realiza una solicitud que requiere 10 000 IOPS para la máquina virtual. La máquina virtual permite todas ellas por que la máquina virtual Standard_D8s_v3 puede ejecutar hasta 12 800 IOPS.
Las 10 000 solicitudes de IOPS se dividen en tres solicitudes diferentes para los distintos discos:
- Se solicitan 1000 IOPS al disco del sistema operativo.
- Se solicitan 4500 IOPS a cada disco de datos.
Todos los discos conectados son E30 y solo pueden controlar 500 IOPS. Por tanto, cada uno responde con 500 IOPS. Los discos conectados limitan el rendimiento de la aplicación y solo puede procesar 1500 IOPS. La aplicación podría funcionar a un rendimiento máximo de 10 000 IOPS si se usaran discos de mejor rendimiento, como discos P30 SSD Premium.
Limitación de E/S de la máquina virtual
Configuración de ejemplo de límite de nivel de máquina virtual:
- Standard_D8s_v3
- IOPS no almacenadas en caché: 12.800
- Disco de SO P30
- IOPS: 5.000
- Dos discos de datos P30 × 2
- IOPS: 5.000
La aplicación que se ejecuta en la máquina virtual realiza una solicitud que requiere 15 000 IOPS. Desafortunadamente, la máquina virtual Standard_D8s_v3 solo está aprovisionada para controlar 12 800 IOPS. La máquina virtual limita la aplicación y debe asignar las 12 800 IOPS.
Esas 12 800 IOPS solicitadas se dividen en tres solicitudes diferentes para los distintos discos:
- Se solicitan 4267 IOPS al disco del sistema operativo.
- Se solicitan 4266 IOPS a cada disco de datos.
Todos los discos conectados son discos P30 que pueden controlar 5000 IOPS. Entonces, responden indicando las cantidades solicitadas.
Límites de máquinas virtuales con y sin caché
Las máquinas virtuales que están habilitadas tanto para Premium Storage como para el almacenamiento en caché de Premium Storage tienen dos límites de ancho de banda de almacenamiento diferentes. Ahora se examinará la máquina virtual Standard_D8s_v3 como ejemplo. Aquí está la documentación sobre la serie Dsv3 y Standard_D8s_v3:
Los datos de disco "Sin almacenar en caché" en Almacenamiento remoto son los límites máximos de almacenamiento predeterminados que puede controlar la máquina virtual.
Los datos del disco "Almacenados en caché" en la pestaña Almacenamiento local son límites independientes cuando se habilita el almacenamiento en caché del host.
Configuración del almacenamiento en caché del host
El almacenamiento en caché de host funciona con el almacenamiento más cercano a la máquina virtual que puede escribirse o leerse rápidamente. La cantidad de almacenamiento que está disponible para la máquina virtual para el almacenamiento en caché del host se encuentra en la documentación. Por ejemplo, puede ver que la Standard_D8s_v3 incluye 200 GiB de almacenamiento en caché.
Puede habilitar el almacenamiento en caché de host al crear la máquina virtual y conectar los discos. También puede activar o desactivar el almacenamiento en caché del host en los discos de una máquina virtual existente. De forma predeterminada, los discos de datos compatibles con caché no tienen habilitado el almacenamiento en caché. Los discos de SO con capacidad de caché tienen habilitada la caché de lectura y escritura.
Puede ajustar el almacenamiento en caché de host para que coincida con los requisitos de carga de trabajo de cada disco. Puede configurar el almacenamiento en caché de host para que sea:
- Solo lectura: para cargas de trabajo que solo realizan operaciones de lectura
- Lectura/escritura: para cargas de trabajo que realizan un equilibrio de operaciones de lectura y escritura
Si la carga de trabajo no sigue ninguno de estos patrones, no se recomienda usar el almacenamiento en caché de host.
Almacenamiento en caché de host de solo lectura
En el ejemplo siguiente se muestra cómo fluyen las solicitudes de E/S al establecer el almacenamiento en caché del host en Solo lectura.
Ejemplo de configuración de la caché del host de solo lectura:
- Standard_D8s_v3
- IOPS en caché: 16 000
- IOPS no almacenadas en caché: 12.800
- Disco de datos P30
- IOPS: 5.000
- Almacenamiento en caché de host: Solo lectura
Cuando se realiza una lectura y los datos deseados están disponibles en la caché, esta devuelve los datos solicitados. No es necesario leer desde el disco. Esta lectura se contabiliza en los límites de caché de la máquina virtual.
Cuando se realiza una lectura y los datos deseados no están disponibles en la caché, la solicitud de lectura se retransmite al disco. Después, el disco pone los datos a disposición tanto de la caché como de la VM. Esta lectura se cuenta para el límite sin almacenamiento en caché de la máquina virtual y el límite almacenado en caché de la misma.
Cuando se realiza una escritura, esta tiene que hacerse en la memoria caché y en el disco antes de que se considere completa. Esta operación de escritura se contabiliza en el límite no almacenado en caché y en el límite almacenado en caché de la máquina virtual.
Caché del host de lectura/escritura
En el ejemplo siguiente se muestra cómo fluyen las solicitudes de E/S al establecer el almacenamiento en caché del host en Lectura y escritura.
Configuración de ejemplo de la caché del host de lectura y escritura:
- Standard_D8s_v3
- IOPS en caché: 16 000
- IOPS no almacenadas en caché: 12.800
- Disco de datos P30
- IOPS: 5.000
- Almacenamiento en caché de host: Lectura/escritura
Con la caché de host de lectura/escritura, las lecturas atendidas desde la caché se contabilizan dentro de los límites de caché de la máquina virtual. Las lecturas con fallo de caché cuentan para ambos límites de la máquina virtual: con caché y sin caché. Las escrituras se controlan de forma diferente: una escritura debe alcanzar solo la memoria caché del host que se va a considerar completada. Después, la escritura se escribe de forma diferida en el disco cuando la caché se vacía periódicamente. También puede forzar el vaciado emitiendo un comando f/sync o fua. Una escritura se contabiliza como E/S en caché cuando se escribe en la caché y como E/S no almacenada en caché cuando se escribe de forma diferida en el disco.
Ejemplo de límite almacenado en caché
En el ejemplo siguiente se usa una máquina virtual Standard_D8s_v3 con el almacenamiento en caché del host habilitado y tres discos P30 conectados. La máquina virtual tiene un límite almacenado en caché de 16 000 IOPS y cada disco P30 puede controlar 5000 IOPS.
Configuración de ejemplo de límite en caché:
- Standard_D8s_v3
- IOPS en caché: 16 000
- IOPS no almacenadas en caché: 12.800
- Disco de SO P30
- IOPS: 5.000
- Almacenamiento en caché de host: Lectura/escritura
- Dos discos de datos P30 × 2
- IOPS: 5.000
- Almacenamiento en caché de host: Lectura/escritura
La aplicación usa una máquina virtual Standard_D8s_v3 con el almacenamiento en caché habilitado. Realiza una solicitud de 16 000 IOPS. Las solicitudes se completan en cuanto se leen o escriben en la caché. Después, las escrituras se escriben de forma diferida en los discos conectados.
Límites no almacenados en caché y almacenados en caché combinados
Los límites en caché de una máquina virtual son independientes de los límites no almacenados en caché. Esta separación significa que puede habilitar el almacenamiento en caché del host en algunos discos conectados a una máquina virtual mientras no habilita el almacenamiento en caché del host en otros discos. Esta configuración permite que las máquinas virtuales obtengan una E/S de almacenamiento total del límite almacenado en caché más el límite sin almacenar en caché.
En el ejemplo siguiente se muestra cómo funcionan conjuntamente los límites almacenados en caché y sin almacenar en caché en una máquina virtual de Standard_D8s_v3 con SSD Premium conectados.
Configuración de ejemplo de límite almacenado en caché y sin almacenamiento en caché combinado:
- Standard_D8s_v3
- IOPS en caché: 16 000
- IOPS no almacenadas en caché: 12.800
- Disco de SO P30
- IOPS: 5.000
- Almacenamiento en caché de host: Lectura/escritura
- Dos discos de datos P30 × 2
- IOPS: 5.000
- Almacenamiento en caché de host: Lectura/escritura
- Dos discos de datos P30 × 2
- IOPS: 5.000
- Almacenamiento en caché de host: Disabled (Deshabilitado)
En este caso, la aplicación que se ejecuta en una máquina virtual Standard_D8s_v3 realiza una solicitud de 25 000 IOPS. La petición se desglosa en 5.000 IOPS para cada uno de los discos conectados. Tres discos usan la caché del host y dos discos no la usan.
- Como los tres discos que usan el almacenamiento en caché de host están dentro de los límites en caché de 16 000, esas solicitudes se completan correctamente. No se produce ningún límite de rendimiento de almacenamiento.
- Como los dos discos que no usan la caché del host están dentro de los límites sin caché de 12 800, esas solicitudes también se completan correctamente. No se aplica ninguna limitación.