Consideraciones de rendimiento para el almacenamiento de Azure NetApp Files con acceso esporádico
Los conjuntos de datos no siempre se usan activamente. Hasta el 80 % de los datos de un conjunto se puede considerar "esporádico", lo que significa que no están actualmente en uso o no se ha accedido a ellos recientemente. Al almacenar datos en un almacenamiento de alto rendimiento, como Azure NetApp Files, el dinero invertido en la capacidad que se usa es básicamente desperdiciado, ya que los datos de acceso esporádico no requieren almacenamiento de alto rendimiento hasta que se vuelva a acceder a ellos.
El almacenamiento de Azure NetApp Files con acceso esporádico está diseñado para reducir los costos de almacenamiento en la nube en Azure. Hay consideraciones de rendimiento en casos de uso específicos que deben tenerse en cuenta.
El acceso a los datos que se han movido a los niveles de acceso esporádico conlleva más latencia, especialmente para E/S aleatorias. En el peor de los casos, es posible que todos los datos a los que se acceda estén en el nivel de acceso esporádico, por lo que cada solicitud tendría que realizar una recuperación de los datos. Es poco habitual que todos los datos de un conjunto de datos que se usen activamente estén en el nivel de acceso esporádico, por lo que es poco probable observar dicha latencia.
Cuando se selecciona la directiva predeterminada de recuperación de acceso esporádico, las lecturas de E/S secuenciales se sirven directamente desde el nivel de acceso esporádico y no se vuelven a rellenar en el nivel de acceso frecuente. Los datos de lectura aleatorios se vuelven a rellenar en el nivel de acceso frecuente, lo que aumenta el rendimiento de las lecturas posteriores. Las optimizaciones para cargas de trabajo secuenciales suelen reducir la latencia en que incurre la recuperación en la nube en comparación con las lecturas aleatorias y mejora el rendimiento general.
En una prueba reciente realizada con Standard Storage con acceso esporádico para Azure NetApp Files, se obtuvieron los siguientes resultados.
Nota:
Todos los resultados publicados son solo con fines de referencia. Los resultados no se garantizan, ya que el rendimiento de las cargas de trabajo de producción puede variar debido a numerosos factores.
Lecturas secuenciales del 100 % en el nivel de acceso frecuente/esporádico (trabajo único)
En el escenario siguiente, se usó un único trabajo en una máquina virtual (VM) D32_V5 en un volumen de Azure NetApp Files de 50 TiB mediante el nivel de rendimiento Ultra. Se usaron diferentes tamaños de bloque para probar el rendimiento en niveles de acceso frecuente y esporádico.
Nota:
El máximo para el nivel de servicio Ultra es de 128 MiB/s por tebibyte de capacidad asignada. Un volumen normal de Azure NetApp Files puede administrar un rendimiento de hasta aproximadamente 5000 MiB/s.
En el gráfico siguiente se muestra el rendimiento del nivel de acceso esporádico para esta prueba mediante una variedad de profundidades de cola. El rendimiento máximo de una sola máquina virtual fue de aproximadamente 400 MiB/s.
El rendimiento del nivel de acceso frecuente fue unas 2,75 veces mejor, alcanzando un máximo de aproximadamente 1 180 MiB/s.
En este gráfico se muestra una comparación en paralelo del rendimiento del nivel de acceso esporádico y frecuente con un tamaño de bloque de 256 000.
¿Qué causa la latencia en los niveles de acceso frecuente y esporádico?
La latencia en el nivel de acceso frecuente es un factor del propio sistema de almacenamiento, donde los recursos del sistema se agotan cuando se envía más E/S al servicio de lo que se puede controlar en un momento dado. Como resultado, las operaciones se deben poner en cola hasta que se puedan completar las operaciones enviadas previamente.
La latencia en el nivel de acceso esporádico suele verse con las operaciones de recuperación en la nube: las solicitudes a través de la red para E/S al almacén de objetos (cargas de trabajo secuenciales) o la rehidratación de bloques esporádicos en el nivel de acceso frecuente (cargas de trabajo aleatorias).
Resumen de resultados
- Cuando una carga de trabajo es 100 % secuencial, el rendimiento del nivel de acceso esporádico disminuye aproximadamente un 47 % frente al nivel de acceso frecuente (3330 MiB/s en comparación con 1742 MiB/s).
- Cuando una carga de trabajo es 100 % aleatoria, el rendimiento del nivel de acceso esporádico disminuye aproximadamente un 88 % frente al nivel frecuente (2479 MiB/s en comparación con 280 MiB/s).
- La caída del rendimiento del nivel de acceso frecuente al realizar cargas de trabajo 100 % secuenciales (3330 MiB/s) y 100 % aleatorias (2479 MiB/s) fue de aproximadamente 25 %. La caída de rendimiento del nivel de acceso esporádico al realizar cargas de trabajo 100 % secuenciales (1742 MiB/s) y 100 % aleatorias (280 MiB/s) fue de aproximadamente 88 %.
- Cuando una carga de trabajo contiene cualquier porcentaje de E/S aleatoria, el rendimiento general del nivel de acceso esporádico está más cerca del 100 % aleatorio que del 100 % secuencial.
- Las lecturas del nivel de acceso esporádico disminuyeron aproximadamente un 50 % al pasar del 100 % secuencial a una combinación secuencial y aleatoria de 80/20.
- La E/S secuencial puede aprovechar una caché
readahead
en Azure NetApp Files que la E/S aleatoria no. Esta ventaja para la E/S secuencial ayuda a reducir las diferencias generales de rendimiento entre los niveles de acceso frecuente y esporádico.
Consideraciones y recomendaciones
- Si la carga de trabajo cambia con frecuencia los patrones de acceso de forma impredecible, es posible que el acceso esporádico no sea ideal debido a las diferencias de rendimiento entre los niveles de acceso frecuente y esporádico.
- Si la carga de trabajo contiene cualquier porcentaje de E/S aleatorias, las expectativas de rendimiento al acceder a los datos del nivel de acceso esporádico deben ajustarse en consecuencia.
- Configure la ventana de acceso esporádico y las opciones de recuperación de acceso esporádico para que coincidan con los patrones de carga de trabajo y para minimizar la cantidad de recuperación del nivel de acceso esporádico.
- El rendimiento del acceso esporádico puede variar en función del conjunto de datos y la carga del sistema donde se ejecuta la aplicación. Se recomienda realizar pruebas pertinentes con el conjunto de datos para comprender y tener en cuenta la variabilidad del rendimiento del acceso esporádico.