La profundidad de cola y el tamaño de bloque cambian la latencia de lectura aleatoria porque controlan cuánto trabajo se envía a la vez y cuántos datos transfiere cada operación. Una prueba con baja cola y bloques pequeños mide qué tan rápido se completa una solicitud, mientras que una prueba con cola alta mide cuánto trabajo paralelo puede sostener la ruta de almacenamiento.
El mismo NAS puede mostrar por lo tanto IOPS modestas de 4K QD1, IOPS mucho más altas de 4K QD32 y un rendimiento fuerte con bloques grandes sin contradicción. Cada resultado describe una carga de trabajo diferente, y el número más rápido del benchmark puede ser el menos representativo de una base de datos interactiva, biblioteca de fotos o aplicación en contenedor.
¿Qué controlan realmente la profundidad de cola y el tamaño de bloque?
La profundidad de cola es el número de operaciones de E/S pendientes en una capa medida. la profundidad de cola controla las solicitudes de E/S pendientes, mientras que el tamaño de bloque define la carga útil transferida por cada solicitud.
Una prueba con QD1 envía una operación y espera su finalización antes de emitir la siguiente. Una prueba con QD32 permite que muchas operaciones esperen o se ejecuten en paralelo, dando al disco, controlador, arreglo y red más oportunidades para solapar trabajo.
Estos valores existen en varias capas. La cola de hilos del benchmark, la cola de bloques del sistema operativo, el HBA, la cola de envío NVMe, los créditos del protocolo NAS y los discos individuales pueden ver diferentes cantidades de solicitudes pendientes.
¿Por qué QD1 expone el tiempo de servicio del almacenamiento?
Con una solicitud pendiente, la siguiente operación no puede ocultarse detrás de trabajo en paralelo, por lo que QD1 expone el tiempo de servicio de una sola solicitud. El resultado incluye el tiempo de servicio del dispositivo más la sobrecarga del protocolo, sistema de archivos, controlador, red y cliente.
Por lo tanto, QD1 es útil para tareas orientadas al usuario que emiten una o pocas lecturas dependientes: abrir metadatos, cargar una página de base de datos, leer una miniatura o seguir un puntero a la siguiente estructura.
No es una prueba completa de capacidad. Un SSD moderno o un arreglo en striping puede soportar mucho más trabajo en paralelo que lo que proporciona QD1, por lo que el resultado puede subestimar las IOPS máximas agregadas mientras representa con precisión la capacidad de respuesta de una sola solicitud.
¿Por qué una mayor profundidad de cola puede aumentar tanto las IOPS como la latencia?
Más trabajo pendiente puede mantener ocupados los canales de almacenamiento y aumentar las operaciones completadas por segundo, pero una mayor profundidad de cola puede aumentar IOPS y latencia juntos. Cada solicitud puede pasar más tiempo esperando antes del servicio.
El benchmark reporta más finalizaciones totales porque el sistema solapa el trabajo, no porque cada solicitud se haya vuelto más rápida. Una vez que el dispositivo o arreglo alcanza su capacidad de servicio, una mayor profundidad de cola principalmente alarga la línea de espera.
Por eso, los IOPS con alta profundidad de cola y la baja latencia interactiva son objetivos separados. Un servidor de respaldo o un trabajo de análisis pueden beneficiarse del paralelismo profundo, mientras que una solicitud de aplicación se preocupa por el tiempo de finalización de una lectura crítica.
¿Cómo cambia el tamaño del bloque los IOPS, el rendimiento y el tiempo de espera?
Los IOPS cuentan operaciones sin describir cuántos bytes mueve cada operación. el tamaño del bloque cambia el equilibrio entre IOPS y rendimiento. Mil lecturas de 4K mueven mucho menos datos que mil lecturas de 128K.
Los bloques pequeños enfatizan la sobrecarga por operación y son comunes para páginas de bases de datos, metadatos y estado de la aplicación. Los bloques más grandes mejoran la eficiencia de transferencia y el rendimiento, pero ocupan el dispositivo, la red y el controlador por más bytes por solicitud.
Un bloque más grande puede reducir el número de IOPS necesarios para un ancho de banda dado mientras aumenta el tiempo de servicio de cada operación. Las aplicaciones mixtas necesitan ambas dimensiones porque un NAS puede servir lecturas de metadatos pequeñas junto a grandes transferencias de medios o copias de seguridad.
¿Por qué la caché y el paralelismo hacen que los resultados parezcan mejores de lo que las aplicaciones realmente sienten?
Los resultados de la referencia pueden estar dominados por la RAM, la caché del controlador, la caché del cliente o el acceso repetido a un conjunto de trabajo pequeño. la caché y la concurrencia pueden ocultar la latencia de lectura en frío.
Los trabajadores de referencia paralelos también pueden distribuir solicitudes a través de discos, canales NAND, núcleos de CPU, canales SMB o colas NVMe de manera más efectiva que un solo hilo de aplicación. La prueba demuestra la escalabilidad agregada, no que una sola lectura fría de la aplicación reciba el mismo beneficio.
Use un conjunto de datos más grande que las cachés relevantes al probar medios de almacenamiento, y ejecute pruebas separadas con caché caliente cuando el almacenamiento en caché de la aplicación sea parte del diseño real. Mezclar ambos produce un número cuyo cuello de botella no está claro.
¿Cómo debe una prueba de lectura aleatoria en un NAS doméstico coincidir con cargas de trabajo reales?
Un benchmark útil varía las dimensiones que varían las aplicaciones reales. las pruebas realistas deben coincidir con la profundidad de cola de la carga de trabajo en lugar de reportar un solo valor máximo de IOPS.
Pruebe QD1 y algunas profundidades moderadas, incluya lecturas pequeñas de 4K u 8K y los bloques más grandes usados por herramientas de medios o respaldo, y registre la latencia promedio además de p95, p99 y máxima. Mantenga constante el cliente, protocolo, encriptación y conjunto de datos al comparar cambios en el almacenamiento.
Ejecute la prueba de lectura aleatoria tanto sola como junto a las cargas de trabajo de fondo que realmente comparten el NAS. Un benchmark aislado puede medir la ruta de almacenamiento claramente, pero no puede revelar la latencia que experimentan los usuarios durante la aplicación, respaldo, indexación o contención de paridad.
| Forma de la prueba | Lo que enfatiza | Malinterpretación común |
|---|---|---|
| 4K QD1 | Tiempo de respuesta de una sola lectura pequeña | Asumiendo que muestra el máximo de IOPS del dispositivo |
| 4K con alta profundidad de cola | Capacidad paralela de E/S pequeñas | Asumiendo que cada solicitud tiene baja latencia |
| 128K con baja profundidad de cola | Eficiencia en solicitudes grandes | Comparar sus IOPS directamente con 4K |
| Lecturas aleatorias en caché | Rendimiento de la memoria y la ruta de software | Atribuir el resultado al medio de almacenamiento |
Preguntas frecuentes
¿Es siempre mejor una mayor profundidad de cola?
No. Puede mejorar el rendimiento agregado hasta saturar la ruta de almacenamiento, pero las solicitudes pueden esperar más y la latencia interactiva puede empeorar.
¿Por qué se reportan comúnmente números de lectura aleatoria de 4K?
Los bloques pequeños se parecen a páginas de bases de datos, metadatos y estado de aplicaciones, y exponen la sobrecarga por operación que las transferencias secuenciales grandes ocultan.
¿Debería un benchmark de NAS usar QD32?
Solo cuando la carga de trabajo esperada puede generar tanta E/S paralela. Incluya QD1 y profundidades moderadas para aplicaciones interactivas de servidores domésticos.
¿Puede la latencia de red dominar una prueba de lectura aleatoria?
Sí. Los viajes de ida y vuelta SMB o NFS, el procesamiento del cliente, la encriptación y las colas del switch pueden superar el tiempo de servicio del dispositivo, especialmente con baja profundidad de cola.
Conclusión final
La profundidad de la cola determina cuántas operaciones de E/S pueden esperar o ejecutarse en paralelo, mientras que el tamaño del bloque determina cuántos datos mueve cada operación. Una mayor profundidad de cola puede aumentar el total de IOPS mientras incrementa la latencia por solicitud, y bloques más grandes pueden mejorar el rendimiento mientras reducen el número de operaciones. Un benchmark útil para un NAS doméstico coincide con la concurrencia real, tamaños de datos, estado de caché y requisitos de latencia máxima en lugar de seleccionar el número más alto destacado.
Centro de Tecnología e IA
Más para leer

Estado de ejecución frente a estado persistente en Home Assistant: ¿qué debe sobrevivir al reinicio?
Home Assistant no conserva todos los valores en tiempo real; la configuración, los registros, los estados restaurados seleccionados, el historial y los datos de...

¿Cómo autentica Home Assistant las sesiones locales y remotas?
Las sesiones locales y remotas de Home Assistant utilizan el mismo modelo de identidad del servidor; el acceso remoto cambia la ruta y el...

¿Por qué pueden volverse lentas las consultas del historial de Home Assistant a medida que crecen los datos del grabador?
El crecimiento del grabador puede aumentar el costo de las consultas del historial cuando el rango solicitado abarca más filas, aumentan los fallos de...

