Inicio Medición del rendimiento del almacenamiento basado en aplicaciones del mundo real

Medición del rendimiento del almacenamiento basado en aplicaciones del mundo real

by Autor Invitado

Imagínese si su aplicación de ejercicios solo lo registrara haciendo un régimen simple que nunca cambió o requirió ningún ajuste en su nivel de esfuerzo. El gráfico 2D de su entrenamiento se vería como la línea plana en un monitor cardíaco, lo que proporcionaría poca información sobre su rendimiento general. Desafortunadamente, así es como se ve una trama de un punto de referencia sintético para el rendimiento del almacenamiento de la estación de trabajo. Estos tipos de puntos de referencia están diseñados para extraer valores máximos del dispositivo de almacenamiento utilizando especificaciones de acceso que están muy optimizadas en el firmware, los controladores y el hardware.


Imagínese si su aplicación de ejercicios solo lo registrara haciendo un régimen simple que nunca cambió o requirió ningún ajuste en su nivel de esfuerzo. El gráfico 2D de su entrenamiento se vería como la línea plana en un monitor cardíaco, lo que proporcionaría poca información sobre su rendimiento general. Desafortunadamente, así es como se ve una trama de un punto de referencia sintético para el rendimiento del almacenamiento de la estación de trabajo. Estos tipos de puntos de referencia están diseñados para extraer valores máximos del dispositivo de almacenamiento utilizando especificaciones de acceso que están muy optimizadas en el firmware, los controladores y el hardware.

El caso clásico es medir E/S aleatorias en tamaños de bloque de 4K con una profundidad de cola muy alta. En este escenario, existe una amplia oportunidad para que los proveedores optimicen la cola de almacenamiento y maximicen la puntuación de IOPS (operaciones de entrada/salida por segundo) para el dispositivo. Por el contrario, las aplicaciones de estaciones de trabajo reales tienen un rango de E/S promedio de uno o dos. Con profundidades de cola tan bajas, el reordenamiento y otras optimizaciones no tienen un efecto tan dramático en el rendimiento; el cuello de botella se reduce a las capacidades de hardware sin procesar, incluso con RAID o arquitecturas de almacenamiento en caché híbridas/por niveles agresivas.


Un gráfico que traza las lecturas y escrituras de almacenamiento para un punto de referencia sintético. El eje X es el desplazamiento desde una ubicación inicial donde ocurre un IO. El eje Y es el tamaño de bloque de la transacción realizada en esa ubicación. Un tamaño de bloque de 128 K, por ejemplo, intentaría leer 128 K de datos de la unidad en alguna ubicación de desplazamiento, todo en una sola solicitud.

Rutas de almacenamiento impredecibles
Las aplicaciones de estaciones de trabajo reales no siguen caminos predecibles para accesos de almacenamiento óptimos. En el mundo de la edición de video no lineal, por ejemplo, un tamaño de bloque se alinea más con el formato contenedor o el método de codificación que con un tamaño de bloque óptimo para transferencias de archivos muy grandes.

Sería significativamente más rápido para una aplicación usar tamaños de bloque de 128K para todos los archivos grandes leídos en la memoria y luego recorrer esos datos en un tamaño más pequeño. Pero el hecho de que la aplicación dicte otros métodos menos óptimos para acceder al almacenamiento hace que cualquier medición sintética sea menos representativa de cómo se procesa el trabajo real.

La edición de video es solo un ejemplo. Casi todas las aplicaciones, incluso aquellas dentro de la misma industria, usan diferentes métodos de lectura/escritura, lo que hace que la medición de los estados de rendimiento máximo sea en gran medida irrelevante. La única forma de medir el almacenamiento con precisión es imitar las operaciones a medida que ocurren dentro de las aplicaciones reales.

Mejorando la metodología
Para su evaluación comparativa SPECwpc 2.1, lanzada a principios de 2016, el subcomité de Caracterización del rendimiento de la estación de trabajo de SPEC (SPECwpc) utilizó IOMeter, una herramienta de caracterización y medición del subsistema de IO, para simular la actividad de IO para una variedad de aplicaciones profesionales. El tamaño y la frecuencia de las transacciones de almacenamiento se recopilaron a partir de estas aplicaciones e IOMeter usó los datos para generar una cadena de transacciones de almacenamiento durante un período de tiempo específico.

Si bien esta técnica era mejor que medir el ancho de banda y la latencia máximos de una estación de trabajo, todavía no estaba muy cerca de lo que realmente hacen las aplicaciones. Con su próximo lanzamiento, SPECwpc quería imitar mejor el comportamiento de las aplicaciones, al mismo tiempo que reflejaba el impacto de los nuevos dispositivos de estado sólido, tecnologías como NAND y 3D Xpoint, y varias opciones de conectividad PCIe.

Al desarrollar el benchmark SPECworkstation 3, lanzado en noviembre de 2018, SPECwpc usó Windows Process Monitor para rastrear las transacciones de almacenamiento de una amplia variedad de aplicaciones profesionales involucradas en el trabajo real. SPECwpc luego escribió una utilidad de reproducción para traducir los rastros en flujos de transacciones de almacenamiento que son casi idénticos a los de las aplicaciones reales.


Lectura/escritura para la aplicación SPECworkstation 3 Handbrake

En lugar de utilizar los datos reales de las aplicaciones, que tendrían un tamaño de cientos de gigabytes, SPECwpc llenó las solicitudes de almacenamiento con datos seleccionados al azar. Luego, la utilidad de reproducción usa varios subprocesos para escribir en varios archivos, al igual que la aplicación real.

El benchmark SPECworkstation 3 incorpora trazas de una amplia variedad de aplicaciones, incluidos medios y entretenimiento (animación 3D, renderizado), desarrollo de productos (CAD/CAM/CAE), ciencias de la vida (médica, molecular), servicios financieros, energía (petróleo y gas). ), operaciones generales y computación GPU.

Las aplicaciones rastreadas para la carga de trabajo de almacenamiento de SPECworkstation 3 incluyen 7zip, Adobe Media Encoder, Adobe Premier Pro, Ansys Icepak, Ansys Mechanical, Autodesk 3ds Max, Autodesk Maya, Autodesk Revit, Blender, CalculiX, Dassault Systémes Solidworks, Handbrake, Lammps, Microsoft Visual Studio 2015, Namd, el conjunto de visualización de energía SPECviewperf 13 y la carga de trabajo SPECworkstation 3 WPCcfd.


Lectura/escritura para la aplicación Calculix (CCX) en el banco de pruebas SPECworkstation 3

Mirando hacia el futuro
El método de reproducción utilizado en SPECworkstation 3 genera subprocesos de una manera razonablemente similar a la aplicación real, pero aún tiene un problema central: la cronología de los IO y cualquier sincronización entre subprocesos no se conserva con precisión. Esto lleva a casos en los que algunos subprocesos completan ciertas operaciones de E/S más rápido y la simultaneidad de las IOP entre los distintos subprocesos no está perfectamente sincronizada, lo que da como resultado una variación ocasional de una ejecución a otra.

Para SPECworkstation 4, cuyo lanzamiento está programado para 2020, SPECwpc trabajará para preservar la cronología de E/S de una manera que evite que las E/S se fusionen cuando lleguen al bus al dispositivo de almacenamiento.

Un llamado a la participación
Si bien no es perfecto, el seguimiento de las operaciones de almacenamiento a partir de comandos de procesamiento de aplicaciones reales como los generados por usuarios de estaciones de trabajo en diversas industrias es un gran paso adelante.

El subcomité SPECwpc, que incluye representantes de AMD, Dell, Fujitsu, HP, Intel, Lenovo y Nvidia, agradece los aportes sobre futuras cargas de trabajo de proveedores de dispositivos, desarrolladores de aplicaciones y usuarios interesados ​​en el rendimiento del almacenamiento.

Al igual que con otros puntos de referencia de SPEC, ofrecer los medios más precisos para capturar e informar el rendimiento del almacenamiento de la estación de trabajo en el mundo real ayudará a establecer un camino para que los desarrolladores mejoren sus procesos en el futuro.

– Alex muestra

Alex Shows es presidente del subcomité SPEC Workstation Performance Characterization (SPECwpc) e ingeniero distinguido en Dell. Sus 23 años de experiencia en la industria incluyen 19 años de diseño, desarrollo y documentación de software; 17 años de validación de diseño de controladores y hardware; y 10 años de investigación aplicada en tecnologías de hardware y software. Posee 12 patentes con seis patentes pendientes. 

Para obtener más información sobre la evaluación comparativa de gráficos y estaciones de trabajo, visite el sitio web de SPEC/GWPG, suscríbase al boletín electrónico SPEC/GWPG, o unirse a Gráficos y Grupo de LinkedIn Benchmarking de estaciones de trabajo

Los puntos de referencia SPEC/GWPG están disponibles para descarga gratuita a todos, excepto a los vendedores de computadoras y productos y servicios relacionados que no son miembros del Grupo de rendimiento de estaciones de trabajo y gráficos de SPEC (ESP/GWPG).