¿Qué son las pruebas de almacenamiento? Tipos, Concepts & Ejemplo

⚡ Resumen inteligente

Las pruebas de almacenamiento verifican que una aplicación escriba sus datos en los directorios correctos y que tenga suficiente espacio en disco para evitar cierres inesperados, al tiempo que miden la velocidad de respuesta del almacenamiento subyacente bajo una carga realista.

  • 💾 También llamado: Pruebas de rendimiento de almacenamiento, porque la velocidad es tan importante como la correcta ubicación.
  • ⚠️ Por qué es importante: El almacenamiento lento produce tiempos de respuesta lentos, consultas de larga duración y una menor disponibilidad de las aplicaciones.
  • 🧩 Tres tipos: Pruebas de aplicaciones, simulación de aplicaciones y evaluación comparativa, cada una con sus propias actividades.
  • 📏 Métricas principales: Las operaciones de entrada/salida por segundo (IOPS), la latencia, el rendimiento y la profundidad de la cola siempre se analizan conjuntamente, no de forma aislada.
  • 🧪 Cómo funciona: Defina los objetivos, determine el tamaño del conjunto de datos, elija combinaciones realistas de lectura/escritura y, a continuación, aumente gradualmente la carga.
  • 🛠️ Estampación: Los generadores de E/S sintéticas producen números repetibles que los comandos de copia de archivos nunca podrán generar.
  • 🚫 Errores comunes: Monitorear el servidor equivocado, omitirping vaciar la caché e ignorar la utilización del procesador.

Tutorial de pruebas de almacenamiento que abarca tipos, conceptos y errores comunes.

¿Qué son las pruebas de almacenamiento?

Prueba de almacenamiento Es un tipo de prueba de software que se utiliza para verificar si la aplicación de software bajo prueba almacena los datos relevantes en los directorios adecuados y si tiene suficiente espacio para evitar terminaciones inesperadas debido a la falta de espacio en disco. También se le llama pruebas de rendimiento de almacenamiento.

La técnica se sitúa en el lado no funcional de la disciplina: como otras formas de pruebas no funcionalesNo dice nada sobre si una función produce la respuesta correcta, y sí dice todo sobre si el sistema puede seguir produciendo respuestas a medida que aumenta el volumen de datos y la presión de E/S.

¿Por qué realizar pruebas de almacenamiento?

El almacenamiento es la capa más lenta con la que interactúan la mayoría de las aplicaciones, por lo que cualquier debilidad en esta capa se manifiesta en todas partes. Cuatro razones justifican un ciclo de pruebas específico.

  • Un almacenamiento lento implica tiempos de respuesta lentos, consultas de larga duración y menor disponibilidad de las aplicaciones.
  • El almacenamiento lento supone una carga adicional para el mantenimiento de la infraestructura de servidores.
  • Resulta útil conocer los límites prácticos de almacenamiento del sistema antes de su implementación.
  • Resulta útil comprender cómo reacciona el sistema cuando se reemplaza o actualiza un dispositivo de hardware.

El diagrama que aparece a continuación sitúa las pruebas de almacenamiento en ese contexto: la aplicación, el sistema de archivos y el dispositivo físico se encuentran en la misma ruta, y cualquier retraso en cualquier punto de ella afecta al usuario.

Descripción general de las pruebas de almacenamiento que muestra una aplicación escribiendo datos a través del sistema de archivos en el dispositivo de almacenamiento.

Tipos de pruebas de almacenamiento

Se utilizan tres enfoques, que se diferencian principalmente en el grado de similitud entre la carga de trabajo y la aplicación real.

  • Pruebas de aplicación: Pruebas de la aplicación con consultas de ejemplo en un entorno similar al de producción.
  • Simulación de aplicaciones: Realizar las pruebas utilizando software estándar que se comporte de forma similar a la aplicación de destino.
  • Benchmarking: Realizar las pruebas utilizando un software de evaluación comparativa estándar que genere una carga de trabajo sintética y repetible.

La primera ofrece el resultado más realista y el menos portable; la tercera proporciona cifras que se pueden comparar entre dispositivos y proveedores, pero dice poco sobre cómo se comportará la propia aplicación.

Pruebas comunes Concepts Participación durante las pruebas de almacenamiento

Cada uno de esos tres tipos se corresponde con un conjunto distinto de actividades, como se resume a continuación.

Tipos de pruebas de almacenamiento Ejemplo de actividades de prueba de almacenamiento comunes
Prueba de aplicación Compare los tiempos de respuesta de OLTP
Comparar tiempos de ejecución por lotes
Compara tasas de transmisión sostenidas
Simulación de aplicaciones Pruebe los IOPS de almacenamiento máximos para bases de datos
Prueba el rendimiento máximo de almacenamiento para entornos de transmisión de datos.
Prueba la latencia de almacenamiento para aplicaciones de mensajería u otras aplicaciones de un solo hilo.
Evaluación comparativa Pruebas de corrupción de datos

Métricas clave en las pruebas de almacenamiento

Los resultados del almacenamiento se presentan mediante un pequeño conjunto de números. Analizar solo uno de ellos es la forma más rápida de llegar a una conclusión errónea, ya que se contradicen entre sí.

Métrico que mide Donde más importa
IOPS Operaciones de lectura y escritura completadas por segundo, independientemente del tamaño. Bases de datos transaccionales y pequeñas escrituras aleatorias
Estado latente Tiempo transcurrido entre el inicio y la finalización de una única operación de E/S. Mensajería y rutas de aplicación de un solo hilo
Throughput Volumen de datos movidos por segundo, generalmente en MB/s. Ejecuciones por lotes, copias de seguridad y cargas de trabajo de transmisión
Profundidad de la cola Número de solicitudes pendientes emitidas al mismo tiempo Cualquier ejecución que deba reflejar una concurrencia real

La profundidad de la cola merece especial atención. Emitir una solicitud a la vez produce una latencia precisa para una sola solicitud, pero una cifra de IOPS y rendimiento artificialmente baja, razón por la cual un dispositivo puede parecer lento en una prueba y rápido en producción, o viceversa.

Cómo realizar pruebas de almacenamiento

La fiabilidad de una prueba de almacenamiento depende de las condiciones en las que se realizó. La siguiente secuencia garantiza la repetibilidad de los resultados.

  • Paso 1) Definir el objetivo. Decide si la prueba consiste en verificar la preparación de la base de datos, determinar el límite de rendimiento o comparar dos dispositivos. Cada objetivo implica una carga de trabajo diferente, y combinarlos produce cifras que no permiten tomar decisiones.
  • Paso 2) Dimensionar el conjunto de datos de forma realista. Un conjunto de trabajo lo suficientemente pequeño como para caber en la caché mide la capacidad de la caché, no la del almacenamiento. Debe coincidir con el volumen de datos de producción o, al menos, superar el tamaño de la caché por un amplio margen.
  • Paso 3) Elija la combinación y el patrón de lectura/escritura. El acceso aleatorio y el secuencial se comportan de forma muy diferente en el mismo dispositivo, al igual que las combinaciones de lectura/escritura 70/30 y las ráfagas de solo escritura. Utilice la combinación obtenida mediante la monitorización de producción en lugar de la predeterminada.
  • Paso 4) Configure la profundidad de la cola y el número de subprocesos. Estos parámetros controlan la cantidad de procesamiento simultáneo que llega al dispositivo, así que regístrelos con cada resultado; una cifra citada sin ellos no se puede reproducir.
  • Paso 5) Borre la caché y caliente. Borre las cachés del servidor y del dispositivo entre ejecuciones y, a continuación, descarte el primer intervalo para que se comparen los valores en estado estable en lugar de los del primer acceso.
  • Paso 6) Correr el tiempo suficiente. Las ejecuciones cortas ocultan el pico de escritura que aparece cuando una unidad SSD agota su búfer de escritura. Las ejecuciones prolongadas lo exponen.
  • Paso 7) Monitorear toda la pila. Registre la utilización del procesador, la memoria y la red junto con los contadores de almacenamiento, para que un cuello de botella en otro lugar no se interprete erróneamente como una limitación de almacenamiento.
  • Paso 8) Repita y compare. Ejecute la misma configuración más de una vez y conserve los registros; la variación en el rendimiento entre compilaciones solo es visible en comparación con una línea base almacenada.

Debido a que la misma disciplina se aplica a cualquier medición impulsada por la carga, estas carreras generalmente se planifican junto con pruebas de rendimiento y programado antes de que se congele la versión candidata.

Herramientas de prueba de almacenamiento

Las herramientas se dividen en dos grupos, y la mayoría de los equipos necesitan ambas.

  • Generadores de E/S sintéticos. Utilidades como fioIometer y sysbench generan una carga de trabajo descrita con precisión: el tamaño del bloque, la combinación de lectura/escritura, la profundidad de la cola y la duración están declarados, por lo que una ejecución se puede repetir exactamente en otro dispositivo.
  • Herramientas de carga a nivel de aplicación. Conductores como JMeter Se pone a prueba la propia aplicación, de modo que el almacenamiento vea el mismo patrón de acceso que crean los usuarios reales, incluidos los planes de consulta y el comportamiento del índice que una herramienta sintética no puede reproducir.

OperaLos contadores del sistema de pruebas completan el panorama. Cualquiera que sea la herramienta que genere la carga, las cifras de almacenamiento deben leerse junto con los contadores del procesador, la memoria y la red; varias técnicas de prueba de almacenamiento, incluidas pruebas de referencia y pruebas de volumen, dependen de esa visión de pila completa para interpretar un resultado correctamente.

Errores al realizar pruebas de almacenamiento

La mayoría de los resultados de almacenamiento no válidos tracVolvemos a un pequeño número de errores evitables.

  • Se está monitorizando el rendimiento del servidor incorrecto, por lo que las cifras describen una máquina que no está siendo probada.
  • Comparar dispositivos de almacenamiento sin borrar primero la caché del servidor, que mide la memoria en lugar del disco.
  • Olvidar monitorizar la utilización del procesador durante las pruebas oculta un cuello de botella relacionado con el procesador tras un síntoma que parece estar relacionado con el almacenamiento.
  • Se está probando el rendimiento del almacenamiento con comandos de copia de archivos, que son de un solo hilo, utilizan caché y no son repetibles.

Preguntas Frecuentes

Pruebas de volumen Aumenta la cantidad de datos que maneja una aplicación y observa cómo se degrada su comportamiento. Las pruebas de almacenamiento se centran en la capa del dispositivo subyacente, midiendo la velocidad con la que se pueden escribir y leer esos datos.

Cada ubicación donde la aplicación escribe: directorios de datos, carpetas de registro y temporales, destinos de carga y rutas de archivo. En cada caso, es necesario verificar que el archivo se guarde en el lugar correcto y que el espacio libre se reporte correctamente.

Las métricas se mantienen, pero se añaden los límites de IOPS aprovisionados, los créditos de ráfaga y los procesos vecinos que generan ruido. Ejecute la aplicación el tiempo suficiente para que se agoten los créditos de ráfaga; de lo contrario, la cifra medida reflejará una asignación temporal en lugar de un estado estable.

Los modelos de aprendizaje automático establecen curvas de latencia y rendimiento de IOPS normales, y luego señalan las ejecuciones que se desvían antes de que se supere un umbral. Estos mismos modelos pronostican el crecimiento de la capacidad, por lo que el agotamiento del disco se predice en lugar de detectarse durante la producción.

Copiloto de GitHub Genera rápidamente archivos de trabajo, scripts para borrar la caché y scripts para analizar los resultados. El evaluador sigue proporcionando el tamaño del bloque, la profundidad de la cola y la duración, ya que estos datos provienen del monitoreo de producción y no de una plantilla.

Ese es un caso de prueba válido, no un accidente. La aplicación debería advertir, degradarse de forma elegante y registrar la condición en lugar de terminar. La recuperación del estado de disco lleno pertenece a pruebas de recuperación.

Por lo general, el estado de la caché, la profundidad de la cola o la duración de la ejecución diferían entre ellos. El estado del dispositivo también influye: una unidad SSD recién formateada escribe más rápido que una que se ha llenado y reescrito varias veces.

Generalmente, los evaluadores de rendimiento son quienes realizan la prueba, mientras que los administradores de infraestructura o de bases de datos proporcionan la configuración del dispositivo y los patrones de acceso de producción. El resultado solo es válido si ambas partes coinciden en que la carga de trabajo fue realista.

Resumir este post con: