La evaluación comparativa de la aplicación Sysbench OLTP se ejecuta sobre una base de datos MySQL que ejecuta el motor de almacenamiento InnoDB. El trabajo del motor de almacenamiento es administrar la interfaz desde la base de datos en disco hasta las aplicaciones que leen y escriben datos hacia y desde el motor de almacenamiento. El motor de almacenamiento, a su vez, administra los subprocesos y registros de E/S y mantiene un caché en la memoria para minimizar el acceso al disco. El siguiente cuadro ofrece una descripción general simplista del motor.
Dado que el motor InnoDB mantiene un caché en la memoria llamado grupo de búfer, el rendimiento se verá afectado directamente por la relación entre el tamaño del conjunto de trabajo y el tamaño del grupo de búfer. En otras palabras, si el grupo de búfer es lo suficientemente grande para contener el conjunto de trabajo o el conjunto de trabajo es lo suficientemente pequeño para caber en el grupo de búfer, la mayoría de las operaciones nunca estarán vinculadas a IO. Sin embargo, si la base de datos es demasiado grande para caber en la memoria, el rendimiento de IO dictará los tiempos de respuesta y el rendimiento de las transacciones. Estamos caracterizando el rendimiento de la unidad en esta situación en la que la base de datos no cabe en la memoria, lo que conduce a un aumento del tráfico de E/S desde el motor de almacenamiento InnoDB.
Múltiples subprocesos (el número depende de la configuración de la base de datos para aplicaciones de alto rendimiento y varía de 32 a 128) leen datos de manera aleatoria desde el almacén de respaldo con un tamaño de bloque de 16 Kbytes. Estas lecturas están relacionadas con las consultas de la base de datos que solicitan datos del almacén de respaldo. A medida que se procesan las lecturas, se almacenan automáticamente en caché en el grupo de búfer. A medida que se llena el grupo de búfer, InnoDB utiliza una política LRU (Usado menos recientemente) para desalojar las páginas más antiguas y dejar espacio para los datos más nuevos.
Las escrituras de la base de datos se dirigen primero al registro de transacciones y al grupo de búfer. El registro de transacciones es un búfer de anillo escrito secuencialmente que se actualiza para cada transacción de escritura. Dependiendo de la configuración de MySQL, esta actualización puede conducir a una escritura inmediata en el disco, o puede persistir temporalmente en la RAM como un búfer que finalmente el sistema de archivos descarga en el disco. El tamaño de este búfer de registro varía, pero suele rondar los 256 MB. La configuración recomendada para el cumplimiento de ACID requiere que las escrituras de registro lleguen al disco en cada confirmación de la base de datos. Estas escrituras tienen una longitud de 4K.
El registro solo hace escrituras "fisiológicas" donde se escribe el delta entre los datos anteriores y los nuevos. Para los datos originales, InnoDB escribe en el grupo de búfer en la RAM, que también debe drenarse de forma asíncrona. El proceso de volver a escribir los datos en el sistema de archivos es configurable y ocurre en segundo plano. Las escrituras también son 16K. Las escrituras son en realidad escrituras dobles en las que el motor primero escribe los datos en una ubicación intermedia llamada búfer de escritura doble. Luego, el motor copia esos datos en su ubicación final en el sistema de archivos. Esto es necesario para evitar el problema de la "página rota" donde una página de base de datos de 16 KB se escribe parcialmente en el disco debido a una pérdida de energía u otro evento catastrófico.
Orígenes del Sysbench Benchmark
Trajimos la configuración de prueba de Sysbench a nuestro laboratorio después de varias conversaciones con micrón sobre cómo simulan entornos de aplicaciones MySQL del mundo real para pruebas y mediciones de SSD. Desarrollaron una metodología de prueba en torno a Sysbench después de descubrir que los puntos de referencia de almacenamiento sintético rara vez brindaban una visión completa de cómo se comportará una unidad cuando esté bajo una carga de trabajo de aplicación particular. La prueba de Sysbench permite a Micron simular un entorno que representa de la mejor manera una carga de trabajo de base de datos MySQL estándar, que prevalece en aplicaciones como Facebook, Craigslist y Booking.com.
Trabajamos particularmente de cerca con Moussa Ba, quien ayudó a ser coautor de este artículo. Moussa es ingeniero de software en el equipo de desarrollo de PCIe de Micron, donde su trabajo incluye la optimización de software de aplicaciones y sistemas para dispositivos IO de alto rendimiento.
Punto de referencia OLTP de Sysbench
Sysbench es un punto de referencia de rendimiento del sistema que incluye un perfil de prueba de procesamiento de transacciones en línea (OLTP). La prueba OLTP no es una aproximación de una prueba OLTP, sino que es un verdadero punto de referencia respaldado por una base de datos que realiza consultas transaccionales a una instancia de MySQL en un entorno CentOS.
El primer paso para configurar el punto de referencia es crear la base de datos en sí, lo que se hace especificando la cantidad de tablas en la base de datos y la cantidad de filas por tabla. En nuestra prueba, definimos 100 tablas con 10 millones de filas cada una, lo que resultó en una base de datos de mil millones de entradas. Esta base de datos era de 1 GB.
Sysbench tiene dos modos de funcionamiento: el modo predeterminado que lee y escribe en la base de datos y un modo de solo lectura. El modo L/E predeterminado ejecutará los siguientes tipos de consultas: 5 consultas SELECCIONAR, 2 consultas ACTUALIZAR, 1 consulta ELIMINAR y 1 INSERTAR. En cuanto a los recuentos de E/S, la proporción de lectura/escritura observada es de aproximadamente un 75 % de lecturas y un 25 % de escrituras.
Entorno de prueba Sysbench
Las soluciones de almacenamiento se prueban con el banco de pruebas Sysbench OLTP en el Laboratorio de pruebas de StorageReview Enterprise utilizando servidores independientes. Actualmente, utilizamos PowerEdge R730 de canal estándar de Dell para mostrar un rendimiento realista y una sólida relación precio/rendimiento, cambiando solo el adaptador de almacenamiento o la interfaz de red para conectar nuestro R730 a diferentes productos de almacenamiento. El PowerEdge R730 ha demostrado ofrecer una gran compatibilidad con dispositivos de terceros, lo que lo convierte en una excelente plataforma para este entorno de prueba diverso. El R730 también aprovecha la poderosa arquitectura de clase Haswell de Intel, que nos brinda el poder de cómputo para enfatizar adecuadamente una amplia gama de ofertas de almacenamiento y maximizar su potencial de rendimiento.
Entorno de referencia Sysbench de primera generación
Lenovo Think Server RD630 – Plataforma de pruebas SATA/SAS/PCIe
- 2594-ABU Modelo más vendido
- CPU doble Intel E5-2650 (2.0 GHz, 8 núcleos, caché de 20 MB)
- 128 GB de RAM (8 GB x 16 DDR3, 64 GB por CPU)
- Micrones de 100 GB Unidad de estado sólido RealSSD P400e (a través de LSI 9207-8i) Unidad de arranque
- 960 GB Micron M500 (a través de 9207-8i) Almacenamiento de base de datos prediseñado
- CentOS 6.3 de 64 bits
- Percona XtraDB 5.5.30-rel30.1
- Tablas de base de datos: 100
- Tamaño de la base de datos: 10,000,000
- Subprocesos de la base de datos: 32
- Búfer RAM: 24GB
Entorno de referencia Sysbench de segunda generación
Dell PowerEdge R730: plataforma de pruebas SATA/SAS/PCIe
- CPU doble Intel E5-2690 v3 (2.6 GHz, 12 núcleos, caché de 30 MB)
- 256 GB de RAM (16 GB x 16 DDR4, 128 GB por CPU)
- SSD de arranque de 100 GB, SSD de almacenamiento de base de datos de 480 GB
- 2 adaptadores Mellanox ConnectX-3 InfiniBand
- 2 x Emulex FC HBA de 16 GB y dos puertos
- 2 x NIC de dos puertos Emulex de 10 GbE
- CentOS 6.6 de 64 bits
- Percona XtraDB 5.5.30-rel30.1
- Tablas de base de datos: 100
- Tamaño de la base de datos: 10,000,000
- Subprocesos de la base de datos: 32
- Búfer RAM: 24GB
Clúster de 730 nodos Sysbench virtualizado Dell PowerEdge R4
- Ocho CPU Intel E5-2690 v3 para 249 GHz en clúster (dos por nodo, 2.6 GHz, 12 núcleos, caché de 30 MB)
- 1 TB de RAM (256 GB por nodo, 16 GB x 16 DDR4, 128 GB por CPU)
- Arranque de tarjeta SD (Lexar 16 GB)
- 4 adaptadores Mellanox ConnectX-3 InfiniBand (vSwitch para red vMotion y VM)
- 4 x Emulex FC HBA de 16 GB y dos puertos
- 4 x NIC de dos puertos Emulex de 10 GbE
- VMware ESXi vSphere 6.0/Enterprise Plus 8-CPU
El objetivo principal de esta plataforma es resaltar el rendimiento del almacenamiento empresarial en un entorno empresarial y una carga de trabajo reales, en lugar de depender de cargas de trabajo sintéticas o pseudosintéticas. Los generadores de carga de trabajo sintéticos son excelentes para mostrar qué tan bien funcionan los dispositivos de almacenamiento con un patrón de E/S sintético continuo, pero no tienen en cuenta ninguna de las otras variables externas que iluminan cómo funcionan realmente los dispositivos en entornos de producción. Los generadores de carga de trabajo sintéticos tienen la ventaja de mostrar un patrón de E/S limpio una y otra vez, pero nunca replicarán un entorno de producción real. La introducción del rendimiento de la aplicación además de los productos de almacenamiento comienza a mostrar qué tan bien interactúa el almacenamiento con sus controladores, el sistema operativo local, la aplicación que se está probando, la pila de red, la conmutación de red y los servidores externos. Estas son variables que un generador de carga de trabajo sintético simplemente no puede tener en cuenta, y también son un orden de magnitud más intensivo en recursos e infraestructura en términos del equipo requerido para ejecutar este punto de referencia en particular.
Resultados generales de rendimiento de Sysbench
Probamos una amplia gama de soluciones de almacenamiento con el benchmark Sysbench OLTP que cumplen con los requisitos mínimos del entorno de prueba. Para calificar para la prueba, el dispositivo de almacenamiento debe tener una capacidad utilizable superior a 260 GB y estar diseñado para operar en condiciones empresariales estresantes. Los dispositivos de almacenamiento conectados localmente, como SSD SAS, SATA y PCIe, se prueban en un servidor completo con una instancia de Sysbench. Las plataformas SAN e hiperconvergentes más nuevas ejecutan 4, 8, 12 o 16 máquinas virtuales simultáneamente para mostrar qué tan bien funcionan varias cargas de trabajo al mismo tiempo en cada una. Esta metodología de prueba ayuda a desmitificar las comparaciones de rendimiento entre los sistemas hiperconvergentes más nuevos y los arreglos de almacenamiento SAN tradicionales.
Resultados de rendimiento de Sysbench hiperconvergente/SAN virtualizado (agregado de 16 VM)
| Inteligencia del | TPS agregado de 32 hilos | Tiempo de respuesta promedio (ms) | Latencia del percentil 99 (ms) |
|---|---|---|---|
| X-IO ISE 860 (4) Dell R730, X-IO ISE 860 AFA (2) Volúmenes de 10 TB |
6625 | 80 | 418 |
Resultados de rendimiento de Sysbench hiperconvergente/SAN virtualizado (agregado de 12 VM)
| Inteligencia del | TPS agregado de 32 hilos | Tiempo de respuesta promedio (ms) | Latencia del percentil 99 (ms) |
|---|---|---|---|
| X-IO ISE 860 (4) Dell R730, X-IO ISE 860 AFA (2) Volúmenes de 10 TB |
7160 | 54 | 177 |
Resultados de rendimiento de Sysbench hiperconvergente/SAN virtualizado (agregado de 8 VM)
| Inteligencia del | TPS agregado de 32 hilos | Tiempo de respuesta promedio (ms) | Latencia del percentil 99 (ms) |
|---|---|---|---|
| X-IO ISE 860 (4) Dell R730, X-IO ISE 860 AFA (2) Volúmenes de 10 TB |
6568 | 39 | 83 |
| VMware VSAN (ESXi 6.0) (4) Dell R730xd, 80 HDD de 1.2 TB, 16 SSD de 800 GB |
4259 | 60 | 131 |
Resultados de rendimiento de Sysbench hiperconvergente/SAN virtualizado (agregado de 4 VM)
| Inteligencia del | TPS agregado de 32 hilos | Tiempo de respuesta promedio (ms) | Latencia del percentil 99 (ms) | Latencia máxima (ms) |
|---|---|---|---|---|
| Híbrido DotHill Ultra48 (4) Dell R730, DotHill Ultra48 híbrido (2) Grupos RAID14 de 1 discos, 40 HDD de 1.8 TB, 8 SSD de 400 GB |
4645 | 28 | 51 | 676 |
| X-IO ISE 860 (4) Dell R730, X-IO ISE 860 AFA (2) Volúmenes de 10 TB |
4424 | 29 | 57 | 983 |
| VMware VSAN (ESXi 6.0) (4) Dell R730xd, 80 HDD de 1.2 TB, 16 SSD de 800 GB |
2830 | 45 | 94 | 480 |
| Nutanix NX-8150 (ESXi 6.0) (4) NX-8150, 80 HDD de 1 TB, 16 SSD de 800 GB Volumen de base de datos de disco virtual RAID0 x 4 |
2390 | 54 | 173 | 4784 |
| Nutanix NX-8150 (ESXi 6.0) (4) NX-8150, 80 HDD de 1 TB, 16 SSD de 800 GB Implementación de base de datos predeterminada |
1422 | 90 | 216 | 5508 |
Acelerador de aplicaciones PCIe/Multi-SSD/HDD RAID Sysbench Resultados de rendimiento
| Inteligencia del | TPS promedio de 32 hilos | Tiempo promedio de respuesta | Latencia del percentil 99 |
|---|---|---|---|
| Huawei ES3000 2.4TB 1 unidad de estado sólido PCIe MLC |
2734.69 | 11.7 | 19.84 |
| Huawei ES3000 1.2TB 1 unidad de estado sólido PCIe MLC |
2615.12 | 12.23 | 21.80 |
| Fusión ioDrive2 Dúo 2.4TB 1 unidad de estado sólido PCIe MLC |
2521.06 | 12.69 | 23.92 |
| Micrón P320h 700GB SSD PCIe SLC x 1 |
2443.56 | 13.09 | 22.45 |
| Micrón P420m 1.4TB 1 unidad de estado sólido PCIe MLC |
2361.29 | 13.55 | 25.84 |
| Fusión ioDrive2 1.2TB 1 unidad de estado sólido PCIe MLC |
2354.06 | 13.59 | 29.35 |
| Virident FlashMAX II 2.2TB 1 unidad de estado sólido PCIe MLC |
2278.11 | 14.04 | 26.04 |
| LSI Nytro WarpDrive 800GB 1 unidad de estado sólido PCIe MLC |
1977.67 | 16.18 | 39.94 |
| LSI Nytro WarpDrive 400GB 1 unidad de estado sólido PCIe MLC |
1903.14 | 16.81 | 39.30 |
Resultados individuales de SAS/SATA SSD
| Inteligencia del | TPS promedio de 32 hilos | Tiempo promedio de respuesta | Latencia del percentil 99 |
|---|---|---|---|
| Toshiba HK3R2 960GB MLC SATA x 1 |
1673.23 | 19.12 | 49.65 |
| SanDisk CloudSpeed Eco 960GB cMLC SATA x 1 |
1556.99 | 20.55 | 49.05 |
| Intel S3700 800GB eMLC SATA x 1 |
1488.71 | 21.49 | 40 |
| Toshiba PX02SM 400GB eMLC SAS (6 Gb/s) x 1 |
1487.03 | 21.52 | 62.02 |
| Óptimo inteligente 400GB eMLC SAS x 1 |
1477.1 | 21.66 | 52.69 |
| OCZ Talos 2C 480GB MLC SAS x 1 |
1438.7 | 22.24 | 47.32 |
| OCZ Intrépido 3600 400GB eMLC SAS x 1 |
1335.3 | 23.96 | 48.42 |
| OCZ Talos 2R 400GB eMLC SAS x 1 |
1421.15 | 22.51 | 45.06 |
| SanDisk Extreme 480GB MLC SATA x 1 |
1303.48 | 24.55 | 53.56 |
| STEC s842 800GB eMLC SAS x 1 |
1293.56 | 24.74 | 67.20 |
| Intel S3500 512GB eMLC SATA x 1 |
1,287.65 | 24.85 | 64.15 |
| Intel S3500 480GB eMLC SATA x 1 |
1241.59 | 25.77 | 54.27 |
| Seagate 600 Pro 400GB eMLC SATA x 1 |
1198.2 | 26.7 | 62.69 |
| Hitachi SSD400S.B 400GB SLCSAS x 1 |
1191.47 | 26.85 | 47.87 |
| Vector OCZ 512GB MLC SATA x 1 |
1130.03 | 28.32 | 62.67 |
| SanDisk Extreme II 480GB MLC SATA x 1 |
981.34 | 32.61 | 102.58 |
| Hitachi SSD400M eMLC SAS x 1 |
878.9 | 36.41 | 68.03 |
| eSSD de Toshiba SLCSAS x 1 |
758.41 | 42.19 | 140.59 |
| Micra M500 480GB MLC SATA x 1 |
668.6 | 47.86 | 461.80 |




Amazon