INFRAESTRUCTURA PRIVADA OFFSHORE
Almacenamiento y recuperaciónAvanzado · 6 min de lectura

Mida el rendimiento de NVMe sin engañarse a sí mismo

Defina el patrón de E/S, controle los efectos de caché e inspeccione las distribuciones de latencia antes de extraer una conclusión sobre la aplicación a partir de una prueba de disco.

Por SwissOctet Editorial
LA RESPUESTA DIRECTA

Una prueba de almacenamiento útil hace coincidir el tamaño de la operación, el patrón de acceso, la concurrencia y los requisitos de durabilidad con la aplicación. Registre las condiciones de la prueba y la distribución de latencia, luego confirme el resultado con mediciones de la aplicación.

01

Comience con una pregunta sobre el almacenamiento, no con una puntuación

Decida qué necesita saber antes de ejecutar un benchmark. Puede estar investigando confirmaciones de base de datos lentas, el rendimiento de distribución de archivos o un proceso de compilación que crea muchos archivos pequeños. Esas cargas de trabajo no le piden al disco lo mismo. Una copia secuencial grande puede parecer impresionante mientras dice poco sobre el retraso que experimenta un servicio que realiza pequeñas lecturas aleatorias.

NVMe fue diseñado para medios no volátiles y E/S paralela eficiente, pero el nombre de su protocolo no describe cada parte de una ruta de almacenamiento alojada. La virtualización, el sistema de archivos, la contención de recursos y la aplicación siguen importando. Escriba una hipótesis de prueba, como si la latencia del almacenamiento está ralentizando una operación concreta, en lugar de intentar producir un número que demuestre que todo el servidor es rápido.

02

Describa la carga de trabajo en términos reproducibles

Registre el tamaño de la operación, el patrón secuencial o aleatorio, la proporción de lectura a escritura, el número de trabajos y la profundidad de cola. Incluya el tamaño del conjunto de datos y la duración de la prueba. La documentación de fio explica estos controles de carga de trabajo y los motores de E/S disponibles. Es posible que no todos los motores o configuraciones alcancen la profundidad prevista, así que lea el comportamiento informado además de la configuración que solicitó.

Conserve una copia de la descripción de la prueba junto al resultado. Anote el sistema operativo, el sistema de archivos, las opciones de montaje, la actividad del servicio y la capacidad disponible. Si compara configuraciones, cambie una condición relevante a la vez. Una prueba con un patrón de acceso o una concurrencia diferentes no puede presentarse de forma justa como si solo hubiera cambiado el medio de almacenamiento.

Patrón de la aplicaciónDimensión de la prueba que se debe describirResultado que se debe examinar
Entrega de archivos grandesLecturas secuenciales y clientes concurrentesRendimiento sostenido y uso de CPU
Búsqueda de registrosLecturas aleatorias pequeñas y concurrencia representativaDistribución de latencia y operaciones completadas
Transacción duraderaRequisitos de escritura y sincronizaciónRetraso relacionado con la confirmación, no solo la velocidad de escritura en búfer
Compilación o extracciónOperaciones mixtas con archivos pequeñosDuración del trabajo de extremo a extremo y esperas de E/S
03

Controle el almacenamiento en caché sin pretender que no importa

Un conjunto de datos que cabe en memoria puede medir principalmente el comportamiento de la caché después de la primera pasada. Eso puede ser útil si la aplicación normalmente se beneficia de la misma caché, pero no debe etiquetarse como rendimiento bruto del dispositivo. Elija deliberadamente si la prueba examina una ruta de aplicación en caliente, un conjunto de datos más frío o un modo de E/S destinado a reducir el efecto de almacenamiento en búfer del sistema operativo.

La compatibilidad y la alineación de E/S directa dependen de la plataforma y el motor. Tampoco expresa automáticamente los requisitos de durabilidad de la aplicación ni elimina todas las cachés de la pila. Indique claramente el modo elegido y evite comparar una prueba con búfer con una prueba sin búfer como si representaran el mismo trabajo. Mantenga separados los intervalos de calentamiento y de medición cuando eso ayude a la interpretación.

04

Lea las colas de latencia junto con el rendimiento

La latencia promedio puede ocultar operaciones lentas que afectan a solicitudes reales. Examine los percentiles informados y el número de muestras que los respaldan. Un percentil alto describe el límite por debajo del cual cayó una fracción declarada de las operaciones observadas durante esa prueba; no es una garantía de servicio permanente. Las ejecuciones cortas o no representativas ofrecen evidencia limitada sobre los períodos de producción con mucha carga.

Una mayor profundidad de cola puede mejorar el rendimiento completado mientras aumenta el tiempo de espera. Esa compensación puede convenir al procesamiento por lotes y perjudicar a un servicio interactivo. Compare los resultados con una concurrencia similar a la de la aplicación y supervise CPU y la presión de E/S al mismo tiempo. Deténgase antes de que la prueba cree una interrupción innecesaria para otra carga de trabajo que comparte el entorno.

05

Mantenga la prueba autorizada y no destructiva

Use un directorio de prueba dedicado o un volumen desechable preparado, con suficiente espacio libre y un plan de limpieza explícito. Nunca apunte un benchmark de escritura a un dispositivo sin verificar o a un conjunto de datos de producción. Compruebe el destino y el comportamiento de escritura de la herramienta antes de comenzar, y empiece con una ejecución limitada. La E/S sintética puede consumir capacidad e interferir con los servicios incluso cuando no sobrescribe archivos útiles.

Para una evaluación similar a la de producción, acuerde una ventana de mantenimiento y mantenga la monitorización de la aplicación. Utilice datos fabricados cuando sea posible. No infiera la fiabilidad del almacenamiento a partir de una prueba de velocidad: las comprobaciones de integridad, las copias de seguridad y la restauración son tareas separadas. Un dispositivo que completa un benchmark todavía necesita una estrategia de recuperación para eliminaciones, errores de software o pérdida de la máquina.

06

Cierre el ciclo con evidencia de la aplicación

Suponga que un servicio de informes pasa gran parte de su tiempo esperando lecturas aleatorias. El equipo prueba un patrón de lectura representativo y luego repite el informe real con datos comparables. Si el informe mejora mientras el resto de su trabajo permanece estable, el resultado respalda la hipótesis del almacenamiento. Si no lo hace, investigue el diseño de las consultas, la memoria u otra dependencia en lugar de repetir pruebas sintéticas más amplias.

Pulse NVMe y determinadas configuraciones dedicadas incluyen almacenamiento NVMe en el catálogo SwissOctet. Sus etiquetas son especificaciones, no benchmarks de aplicaciones publicados. Utilice un método controlado para evaluar el entorno entregado y conserve las condiciones junto con los hallazgos. La decisión se vuelve más sólida cuando la medición del almacenamiento y el resultado visible para el usuario responden a la misma pregunta.

CONVIÉRTALO EN ACCIÓN

Su lista de verificación práctica.

  • Defina primero la pregunta de la aplicación.
  • Registre el patrón, el tamaño de bloque, la concurrencia y la duración.
  • Indique los supuestos de caché y modo de E/S.
  • Inspeccione los percentiles de latencia además del rendimiento.
  • Use un destino desechable verificado y una carga inicial limitada.
  • Confirme el hallazgo con una prueba de la aplicación.
PREGUNTAS FRECUENTES

Los detalles que importan.

¿Basta una copia secuencial para comparar el almacenamiento de una base de datos?+

Normalmente no. El acceso a la base de datos puede implicar pequeñas lecturas aleatorias, escrituras y sincronización. Modele el patrón relevante y verifique la aplicación real.

¿La E/S directa demuestra escrituras duraderas?+

No. El almacenamiento en búfer y la durabilidad son cuestiones separadas. Ajuste el comportamiento de sincronización que requiere la aplicación.

¿Puedo publicar una prueba como velocidad garantizada del plan?+

No. Publique sus condiciones y su alcance. Un resultado medido de una ejecución no es una garantía de nivel de servicio ni de rendimiento futuro.

REFERENCIAS PRINCIPALES

Vaya a la fuente.

Estas referencias respaldan los conceptos técnicos de esta guía. Consulte la documentación actual antes de cambiar un sistema de producción.

  1. fio: Documentación del probador de E/S flexible fio.readthedocs.io
  2. NVM Express: Descripción general de la especificación y preguntas frecuentes nvmexpress.org
  3. Kernel de Linux: Pressure Stall Information docs.kernel.org

Orientación editorial de SwissOctet. Los ejemplos son ilustrativos. Las especificaciones del servicio, las opciones disponibles y las condiciones contractuales deben verificarse por separado.

CONECTE EL CONOCIMIENTO

Infraestructura relacionada.

MANTENGA EL HILO

Sus próximas notas de campo.

Explore todas las guías