Efecto del almacenamiento en caché en el rendimiento de disco en Azure

Completado

De manera muy parecida a los equipos locales, el rendimiento de una máquina virtual a menudo se puede vincular directamente con la rapidez con que la máquina virtual puede leer y escribir datos. Para comprender cómo mejorar ese rendimiento, primero tenemos que comprender cómo se mide el rendimiento. También tenemos que comprender la configuración y las opciones que afectan a esa medida.

Se va a examinar en concreto los discos y el almacenamiento subyacentes usados con las máquinas virtuales. Al examinar el rendimiento, tenga en cuenta que también tiene que considerar la capa de aplicación. Por ejemplo, si ejecuta una base de datos en una máquina virtual, le interesará examinar la configuración de rendimiento específica de la base de datos para asegurarse de que la base de datos esté optimizada para la máquina virtual y el almacenamiento donde la ejecuta.

Comenzaremos por definir unos términos y las garantías que establece Azure sobre ellos.

Operaciones de E/S por segundo

El tipo de almacenamiento que seleccione (Estándar o Premium) determina la velocidad de los discos. Medimos este rendimiento en operaciones de E/S por segundo o IOPS.

IOPS es el número de solicitudes que un disco puede procesar en un segundo. Una única solicitud es una operación de lectura o escritura. Esta medida se aplica directamente al almacenamiento. Por ejemplo, si tiene un disco que puede alcanzar 5000 IOPS, significa que, en teoría, es capaz de procesar 5000 operaciones de lectura y escritura por segundo.

Nota:

Los factores externos, incluida la latencia, pueden afectar a IOPS.

IOPS afecta directamente al rendimiento de la aplicación. Algunas aplicaciones, como los sitios web comerciales, necesitan un número alto de IOPS para controlar todas las solicitudes de E/S pequeñas y aleatorias que deben procesarse rápidamente para que el sitio siga respondiendo.

IOPS en Azure

Al conectar un disco de almacenamiento prémium a la máquina virtual de gran escala, Azure aprovisiona automáticamente un número garantizado de IOPS según la especificación del disco. Por ejemplo, un disco P50 aprovisiona 7500 IOPS. Cada tamaño de máquina virtual a gran escala también tiene un límite de IOPS específico que puede admitir. Por ejemplo, una VM GS5 estándar tiene un límite de 80 000 IOPS.

IOPS es una medida de rendimiento de los discos; sin embargo, es un límite teórico. Otros dos factores pueden afectar al funcionamiento real de la aplicación: rendimiento y latencia.

¿Qué es el rendimiento?

El rendimiento es la cantidad de datos que la aplicación envía a los discos de almacenamiento en un intervalo especificado (normalmente, por segundo). Si la aplicación realiza E/S con bloques grandes de datos, requiere un alto rendimiento.

Azure aprovisiona el rendimiento en discos de almacenamiento prémium según la especificación de esos discos. Por ejemplo, un disco P50 aprovisiona un rendimiento de disco de 250 MB por segundo. Cada tamaño de VM a gran escala también tiene un límite de rendimiento específico que puede admitir. Por ejemplo, la VM GS5 estándar tiene un rendimiento máximo de 2000 MB por segundo.

IOPS frente a rendimiento

El rendimiento y el número de IOPS tienen una relación directa: cambiar uno tiene una repercusión directa en el otro. Para obtener un límite teórico del rendimiento, puede usar la fórmula: IOPS x I/O size = throughput. Es importante tener en cuenta ambos valores al planear su aplicación.

¿Qué es la latencia?

Leer y escribir datos lleva tiempo. La latencia es el tiempo que tarda la aplicación en enviar una solicitud al disco y obtener una respuesta. En esencia, la latencia nos indica cuánto se tarda en procesar una sola solicitud de E/S de lectura o escritura.

La latencia limita las IOPS. Por ejemplo, si el disco puede controlar 5000 IOPS, pero cada operación tarda 10 ms en procesarse, la aplicación está limitada a 500 operaciones por segundo debido al tiempo de procesamiento. Este ejemplo es una simple ilustración; la mayoría del tiempo la latencia es considerablemente menor. En última instancia, la latencia y el rendimiento determinan la rapidez con que la aplicación puede procesar datos desde el almacenamiento.

El almacenamiento prémium proporciona latencias bajas constantes, y se puede conseguir una latencia aún mejor cuando sea necesario mediante el almacenamiento en caché.

Prueba del rendimiento de los discos

Para ajustar y equilibrar las IOPS, el rendimiento y la latencia de los discos de VM, puede seleccionar el tamaño de VM y el tipo de almacenamiento correctos. Normalmente, los tamaños de VM más grandes o más caros tienen mayores garantías de máximo de IOPS y rendimiento. Sume a esa ecuación el almacenamiento estándar frente a prémium y opciones de HDD frente a SSD, y tendrá varios parámetros con los que jugar.

Para seleccionar la combinación correcta, es necesario comprender los requisitos de la aplicación. Las aplicaciones con un valor elevado de E/S, como los servidores de bases de datos o los sistemas de procesamiento transaccional en línea, requieren mayores IOPS, mientras que las aplicaciones que se basan más en procesos pueden funcionar con requisitos menores. Además, los tipos de operación que realizan las aplicaciones afectan al rendimiento. Las E/S de acceso aleatorio alto tienden a ser más lentas que las lecturas secuenciales largas.

Una vez que seleccione la configuración, puede usar herramientas como Iometer para probar el rendimiento del disco en VM Windows y Linux. Esta prueba le dará una idea más real de qué tipo de rendimiento puede esperar. También puede ayudarlo a identificar formas de mejorar el uso del almacenamiento que haga la aplicación. Por ejemplo, una aplicación que realiza E/S en un único subproceso es probable que tenga un rendimiento de E/S reducido debido a la latencia.

En la siguiente unidad, se examinan otras cosas que se pueden hacer para mejorar el rendimiento del disco.