Descripción de la metodología de las pruebas de rendimiento en Azure NetApp Files
La herramienta del banco de pruebas que se usa en estas pruebas se denomina Flexible I/O Tester (FIO).
Al probar los límites de rendimiento del almacenamiento, la generación de cargas de trabajo debe estar altamente paralelizada para lograr el mayor número de resultados posibles.
Esto significa lo siguiente:
- clientes uno a muchos
- varias CPU
- varios subprocesos
- realizar E/S en varios archivos
- conexiones de red multiproceso (como nconnect)
El objetivo final es llevar el sistema de almacenamiento tan lejos como pueda antes de que unas operaciones deban empezar a esperar a que otras terminen. El uso de un único cliente que atraviese un único flujo de red, o que lea un único archivo o escriba en él (por ejemplo, mediante dd o diskspd en un único cliente) no ofrece resultados indicativos de la capacidad de Azure NetApp Files. En su lugar, estas configuraciones muestran el rendimiento de un único archivo, que suele evolucionar en función de la velocidad en baudios de la configuración de QoS de Azure NetApp File.
Además, el almacenamiento en caché debe minimizarse tanto como sea posible, con el fin de lograr resultados precisos y representativos de lo que el almacenamiento puede lograr. Sin embargo, el almacenamiento en caché es una herramienta muy real para que las aplicaciones modernas rindan al máximo. Cubren escenarios en la que una parte del almacenamiento en caché se ha omitido en las cargas de trabajo de E/S aleatorias mediante el uso de la aleatorización de la carga de trabajo a través de las opciones de FIO (específicamente, randrepeat=0
para evitar el almacenamiento en caché en el almacenamiento y dirección para evitar el almacenamiento en caché del cliente).
Acerca de Flexible I/O Tester
Flexible I/O Tester (FIO) es una herramienta de generación de cargas de trabajo de código abierto que se suele usar para realizar pruebas comparativas de almacenamiento debido a su facilidad de uso y a su flexibilidad para definir patrones de carga de trabajo. Para más información sobre su uso con Azure NetApp Files, consulte Banco de pruebas de rendimiento de recomendaciones de pruebas para Azure NetApp Files.
Instalación de FIO
Siga la sección Paquetes binarios que aparece en el archivo LÉAME de FIO para instalar la versión correspondiente a la plataforma que prefiera.
Ejemplos de FIO para IOPS
Los ejemplos de FIO de esta sección usan la configuración siguiente:
- Tamaño de instancia de máquina virtual: D32s_v3
- Tamaño y nivel de servicio del grupo de capacidad: Premium/50 TiB
- Tamaño de cuota del volumen: 48 TiB
En los ejemplos siguientes se muestran las lecturas y escrituras aleatorias de FIO.
FIO: lecturas 100 % aleatorias con tamaño de bloque de 8 k
fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: escrituras 100 % aleatorias con tamaño de bloque de 8 k
fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
Resultados de punto de referencia
Para obtener resultados de punto de referencia oficiales sobre el rendimiento de FIO en Azure NetApp Files, consulte Puntos de referencia de rendimiento de Azure NetApp Files para Linux.
Ejemplos de FIO para el ancho de banda
Los ejemplos de esta sección muestran las lecturas y escrituras secuenciales de FIO.
FIO: lecturas 100 % secuenciales con tamaño de bloque de 64 k
fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO: escrituras 100 % secuenciales con tamaño de bloque de 64 k
fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
Resultados de punto de referencia
Para obtener resultados de punto de referencia oficiales sobre el rendimiento de FIO en Azure NetApp Files, consulte Puntos de referencia de rendimiento de Azure NetApp Files para Linux.
Almacenamiento en caché con FIO
FIO se puede ejecutar con opciones concretas para controlar la forma en que un banco de pruebas de rendimiento lee y escribe archivos. En los bancos de pruebas en los que se excluía el almacenamiento en caché, la marca de FIO randrepeat=0
se usaba para evitar el almacenamiento en caché mediante la ejecución de una verdadera carga de trabajo aleatoria, en lugar de un patrón repetido.
[randrepeat
]https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-type)
De forma predeterminada, si randrepeat
no está definido, la herramienta FIO establece el valor en "true", lo que significa que los datos generados en los archivos no son realmente aleatorios. Por consiguiente, las memorias caché del sistema de archivos no se usan para mejorar el rendimiento general de la carga de trabajo.
En los anteriores bancos de pruebas de Azure NetApp Files, no se definía randrepeat
, por lo que se implementaba una parte del almacenamiento en caché del sistema de archivos. En pruebas más actualizadas, esta opción se establece en "0" (false), con el fin de garantizar que hay una aleatoriedad adecuada en los datos para evitar cachés del sistema de archivos en el servicio Azure NetApp Files. Esta modificación provoca números generales algo inferiores, pero es una representación más precisa de lo que el servicio de almacenamiento es capaz de hacer cuando se omite el almacenamiento en caché.