Estimativa rápida da velocidade do disco com backup
Dmitry Kuzmenko, 30.05.2019, ib-aid.com
Nosso suporte técnico recebe periodicamente uma pergunta (que também é feita nos fóruns) - “parece que nossos discos estão lentos, como confirmar isso”?
Na maioria das vezes, essa pergunta é feita por usuários de máquinas virtuais, onde o DBA não tem acesso às configurações do subsistema de disco ou nem conhece suas características.
Claro, a velocidade do disco pode ser medida por diferentes ferramentas, desde o simples CrystalDiskMark até o mais complexo IOMeter. Mas os resultados mais puros podem ser obtidos quando os aplicativos não trabalham com o disco. Caso contrário, os resultados podem variar, e sob alta carga, os testes podem diminuir o desempenho do sistema.
Além disso, os administradores de sistema podem proibir a instalação de software de terceiros, mesmo por um curto período de tempo.
No entanto, o backup geralmente é feito em todos esses sistemas (exceto naqueles que usam software de backup em nível de VM para fazer backup do Firebird, o que é errado - veja #11 aqui em “12 Erros Comuns ao Fazer Backup de Bancos de Dados”).
O backup (gbak -b -g) é uma leitura de todos os dados do banco de dados e uma gravação (sequencial) desses dados no arquivo de backup. Do ponto de vista das operações de leitura/gravação, é uma combinação de leitura aleatória e gravação sequencial.
O arquivo de backup geralmente tem um tamanho de 60% a 70% do tamanho do banco de dados. E, por causa do versionamento e da estrutura de páginas do banco de dados, há mais leituras do que gravações.
Como o arquivo de backup geralmente é colocado em outra unidade física, a velocidade geral do backup dependerá da velocidade de leitura aleatória do banco de dados e da velocidade de gravação sequencial da unidade de backup. Claro, você pode colocar o banco de dados em um HDD e fazer o backup em um SSD, mas isso será muito ineficaz. Portanto, consideramos que a velocidade da unidade de backup é quase igual à velocidade da unidade do banco de dados, não muito maior ou menor.
Para simplificar a avaliação de velocidade, pegamos apenas o tamanho do arquivo de backup e o dividimos pelo tempo de backup. O resultado será em “megabytes por segundo”. Mas, para avaliar o valor obtido em comparação com outros sistemas, é necessária algum tipo de medição de referência.
Tomamos um computador desktop médio como referência, com um banco de dados em RAID1 de 2 HDDs SATA3, e backup em um HDD SATA3 separado (a velocidade de leitura sequencial desse RAID1 é de cerca de 180 MB/s, e ~150 MB/s para o HDD de backup).
Aqui, o backup de um banco de dados de 31 GB tem 21 GB de tamanho, e o backup em modo de usuário único (ninguém está trabalhando nesse computador) leva 18 minutos, com velocidade de backup de 19 megabytes por segundo.
Então, como este não é um servidor poderoso, mas apenas um desktop (montado há 2 ou 3 anos), podemos usar essa velocidade de backup como referência, considerando-a como normal e talvez a mínima aceitável para sistemas de produção.
Em seguida, analisamos a velocidade de backup em 30 servidores diferentes sob nossa gestão de suporte, onde o tamanho do arquivo de backup não é inferior a 5 gigabytes.
| Desempenho | Velocidade, MB/s | Comentários e Exemplos |
|---|
| Rápido | 50-70 | Houve alguns sistemas com backups de 38 a 150 gigabytes. Backup de um banco de dados de 124 GB em 42 minutos - é rápido. | | Médio | 20-50 | Aqui, a velocidade média é de cerca de 80 gigabytes em 30-40 minutos. Isso é normal, e nosso desktop mostra um resultado que pode se encaixar aqui. | | Lento | 10-20 | 463 gigabytes em 11 horas, 80 gigabytes em 2 horas, 293 gigabytes em 5 horas - é lento, até nosso desktop de teste é mais rápido. | | Extremamente lento | Abaixo de 10 | Isso é como 8,5 gigabytes em 1 hora. Muito lento. |
É claro que em alguns sistemas estudados, o backup não é feito durante carga zero no servidor. Mas, em qualquer caso, é feito durante a carga mínima no servidor.
Apenas para saber o quanto uma carga baixa pode afetar a velocidade do backup, executamos 2 backups simultâneos no mesmo desktop. Ambos levaram 19 minutos com uma velocidade de 18 megabytes por segundo. Isso é 93% do backup de usuário único, o que não é muito (queda de 7%) para HDDs únicos. Se você tiver SSD, talvez nem note a diferença mesmo se executar 3-4 backups ao mesmo tempo.
Em geral, a velocidade de backup de 20 megabytes por segundo ou menos pode ser motivo de preocupação.
Nesse caso, ou o disco de backup é muito lento, enquanto o backup deveria ser feito o mais rápido possível. Ou o disco do banco de dados é muito lento, e o desempenho geral do sistema é pior do que deveria ser.
Como aumentar a velocidade do backup
Muitas pessoas não usam o gbak em velocidade máxima, e às vezes é possível aumentar a velocidade do backup com um único parâmetro -se service_mgr, para usar o gerenciador de serviços dentro do mecanismo Firebird.
A linha de comando recomendada para backup rápido é a seguinte, tanto para Firebird 2.5 quanto para Firebird 3.0:
gbak -se localhost:service_mgr -b -g -user USERNAME -pass password Disk:\Path\Database.fdb Disk:\Path\backup.fbk
Mais dicas e truques dedicados ao desempenho geral: