Estimación rápida de la velocidad del disco con copia de seguridad
Dmitry Kuzmenko, 30.05.2019, ib-aid.com
Nuestro soporte técnico recibe periódicamente una pregunta (que también se hace en los foros) - “parece que nuestros discos son lentos, ¿cómo confirmarlo?”.
La mayoría de las veces esta pregunta la hacen usuarios de máquinas virtuales, donde el DBA no tiene acceso a la configuración del subsistema de discos o ni siquiera conoce sus características.
Por supuesto, la velocidad del disco se puede medir con diferentes herramientas, desde el simple CrystalDiskMark hasta el más complejo IOMeter. Pero los resultados más puros se obtienen cuando las aplicaciones no trabajan con el disco. De lo contrario, los resultados pueden variar, y bajo una carga alta las pruebas pueden disminuir el rendimiento del sistema.
Además, los administradores de sistemas pueden prohibir la instalación de software de terceros, incluso por un período corto de tiempo.
Sin embargo, la copia de seguridad se realiza normalmente en todos estos sistemas (excepto en aquellos que usan software de copia de seguridad a nivel de VM para respaldar Firebird, lo cual es incorrecto - ver #11 aquí en “12 Errores Comunes al Hacer Copias de Seguridad de Bases de Datos”).
La copia de seguridad (gbak -b -g) es una lectura de todos los datos de la base de datos y una escritura (secuencial) de estos datos al archivo de respaldo. Desde el punto de vista de las operaciones de lectura/escritura, es una combinación de lectura aleatoria y escritura secuencial.
El archivo de respaldo suele tener un tamaño del 60%-70% del tamaño de la base de datos. Y, debido al versionado y la estructura de páginas de la base de datos, hay más lecturas que escrituras.
Dado que el archivo de respaldo generalmente se coloca en otra unidad física, la velocidad general de la copia de seguridad dependerá de la velocidad de lectura aleatoria de la base de datos y de la velocidad de escritura secuencial de la unidad de respaldo. Claro, puedes colocar la base de datos en un HDD y hacer el respaldo en un SSD, pero esto sería muy ineficaz, por lo que consideramos que la velocidad de la unidad de respaldo es casi igual a la de la unidad de la base de datos, no mucho mayor ni menor.
Para simplificar la evaluación de la velocidad, tomamos solo el tamaño del archivo de respaldo y lo dividimos por el tiempo de respaldo. El resultado será en “megabytes por segundo”. Pero, para evaluar el valor obtenido en comparación con otros sistemas, se requiere algún tipo de medición de referencia.
Tomamos como referencia una computadora de escritorio promedio, con una base de datos en RAID1 de 2 HDD SATA3, y el respaldo en un HDD SATA3 separado (la velocidad de lectura secuencial de este RAID1 es de alrededor de 180 MB/seg, y ~150 MB/seg para el HDD de respaldo).
Aquí, el respaldo de una base de datos de 31 GB tiene un tamaño de 21 GB, y el respaldo en modo de usuario único (nadie trabaja en esa computadora) toma 18 minutos, con una velocidad de respaldo de 19 megabytes por segundo.
Entonces, dado que no es un servidor potente, sino solo una computadora de escritorio (ensamblada hace 2 o 3 años), podemos usar esta velocidad de respaldo como referencia, considerándola como normal y quizás la mínima aceptable para sistemas de producción.
A continuación, analizamos la velocidad de respaldo en 30 servidores diferentes bajo nuestra gestión de soporte, donde el tamaño del archivo de respaldo no es inferior a 5 gigabytes.
| Rendimiento | Velocidad, MB/seg | Comentarios y Ejemplos |
|---|
| Rápido | 50-70 | Hubo algunos sistemas con respaldos de 38 a 150 gigabytes. Respaldo de una base de datos de 124 GB en 42 minutos - es rápido. | | Promedio | 20-50 | Aquí la velocidad promedio es de alrededor de 80 gigabytes en 30-40 minutos. Esto es normal, y nuestra computadora de escritorio muestra un resultado que podría encajar aquí. | | Lento | 10-20 | 463 gigabytes en 11 horas, 80 gigabytes en 2 horas, 293 gigabytes en 5 horas - es lento, incluso nuestra computadora de escritorio de prueba es más rápida. | | Extremadamente lento | Por debajo de 10 | Esto es como 8.5 gigabytes en 1 hora. Muy lento. |
Está claro que en algunos sistemas estudiados la copia de seguridad no se realiza durante una carga cero en el servidor. Pero en cualquier caso, se realiza durante la carga mínima del servidor.
Solo para saber cómo una carga baja puede afectar la velocidad de respaldo, ejecutamos 2 respaldos simultáneos en la misma computadora de escritorio. Ambos tomaron 19 minutos con una velocidad de 18 megabytes por segundo. Esto es el 93% del respaldo de usuario único, lo cual no es mucho (una reducción del 7%) para HDD individuales. Si tienes SSD, es posible que ni siquiera notes la diferencia incluso si ejecutas 3-4 respaldos al mismo tiempo.
En general, una velocidad de respaldo de 20 megabytes por segundo o menos puede ser motivo de preocupación.
En este caso, o el disco de respaldo es demasiado lento, mientras que el respaldo debería hacerse lo más rápido posible. O el disco de la base de datos es demasiado lento, y el rendimiento general del sistema es peor de lo que debería ser.
Cómo aumentar la velocidad de respaldo
Muchas personas no usan gbak a máxima velocidad, y a veces es posible aumentar la velocidad de respaldo con un solo interruptor -se service_mgr, para usar el administrador de servicios dentro del motor de Firebird.
La línea de comandos recomendada para un respaldo rápido es la siguiente, tanto para Firebird 2.5 como para Firebird 3.0:
gbak -se localhost:service_mgr -b -g -user USERNAME -pass password Disk:\Path\Database.fdb Disk:\Path\backup.fbk
Más consejos y trucos dedicados al rendimiento general: