Actualización sobre el rendimiento de fsync – Blog de rendimiento de la base de datos de Percona

El año pasado, escribí una publicación centrada en el desempeño del sincronizar llame a diferentes dispositivos de almacenamiento. La llamada fsync es extremadamente importante para una base de datos cuando la durabilidad, la «D» del acrónimo ACID, es un requisito difícil. La llamada garantiza que los datos se almacenen permanentemente en el disco. El requisito de durabilidad obliga a que cada transacción regrese solo cuando el archivo de registro de InnoDB y el archivo de registro binario se hayan lavado en el disco.

En esta publicación, en lugar de centrarnos en el rendimiento de varios dispositivos, vemos qué se puede hacer para mejorar el rendimiento de fsync con una tarjeta Intel Optane.

Intel Optano

Hace unos años, Intel introdujo un nuevo tipo de dispositivo de almacenamiento basado en el 3D_XPunto tecnología y se vende bajo la marca Optane. Esos dispositivos superan a los dispositivos flash regulares y tienen una mayor resistencia. En el contexto de esta publicación, descubrí que también son muy buenos para manejar llamadas fsync, algo para lo que muchos dispositivos flash no son buenos.

Recientemente obtuve acceso a una tarjeta Intel Optane NVMe, una tarjeta P4800X DC con una capacidad de almacenamiento de 375 GB. Veamos cómo se puede utilizar para mejorar el rendimiento.

Optane utilizado directamente como dispositivo de almacenamiento

Esta es probablemente la opción más simple si su conjunto de datos se ajusta al gráfico. Simplemente instale el dispositivo, cree un sistema de archivos, móntelo y listo. Usando el mismo script de python que en la primera publicación, los resultados son:

Opciones Tasa de sincronización Latencia
ext4, O_DIRECTO 21200 / s 0,047 ms
ext4 20000 / segundo 0,050 ms
ext4, datos = diario 9600 / segundo 0,100 ms

Los resultados anteriores son bastante sorprendentes. El rendimiento de fsync está a la par con un controlador RAID con caché de escritura, para el cual tuve una tasa de 23000/s y es mucho mejor que una tarjeta NVMe normal basada en NAND como la Intel PC-3700, capaz de proporcionar un 7300/s flecha sincronizada. Incluso activando el registro ext4 completo, la tasa sigue siendo excelente incluso si, como se esperaba, se reduce a la mitad.

Optane utilizado como dispositivo de bloqueo de caché en un volumen híbrido

Si tiene un conjunto de datos grande, también puede usar la tarjeta Optane como caché de lectura/escritura y mejorar significativamente el rendimiento de fsync. Hice algunas pruebas con dos soluciones fácilmente disponibles, dm-caché y bcache. En ambos casos, la tarjeta Optane se colocó frente a una unidad USB Sata externa y la capa de caché se configuró en escribir.

Opciones Tasa de sincronización Latencia
Sin caché 13 / s 75ms
dm-caché 3100 / segundo 0,32 ms
bcache 2500 / segundo 0,40 ms

Ambas soluciones mejoran la frecuencia de fsync en dos órdenes de magnitud. Todavía es mucho más lento que el dispositivo directo, pero es un intercambio muy decente.

Optane utilizado como ZFS SLOG

ZFS también puede usar un dispositivo rápido para su registro de escritura, el ZIL. Uno de estos dispositivos en la terminología de ZFS se llama SLOG. Con el logbias de ZFS configurado en «latencia», este es el impacto de usar un dispositivo Optane como SLOG frente a la misma unidad USB SATA lenta:

Opciones Tasa de sincronización Latencia
ZFS, SLOG 7400 / segundo 0,135 ms
ZFS, sin SLOG 28 / s 36 ms

La adición del dispositivo SLOG ha aumentado la tasa de fsync en un factor de casi 260. Las tasas también son el doble de las reportadas con dm-cache y bcache y aproximadamente un tercio del resultado usando el dispositivo Optane para almacenamiento. Teniendo en cuenta todos los beneficios adicionales de ZFS, como la compresión y las instantáneas, este es un resultado realmente interesante.

Conclusiones

Si tiene problemas con la latencia de comisión de una gran base de datos de transacciones, los dispositivos 3D_XPoint como Intel Optane pueden ofrecer nuevas opciones.

Author: Ing. Luis

A lo largo de conocer Windows y otros sistemas operativos me eh encontrado con diversos tipos de error, ahora brindo soluciones según mi experiencia-

Deja un comentario