mysqldump em mariadb 10 extremamente lento [fechado]

1

Estou executando uma instância do MariaDB 10.1.34 no AWS RDS. As especificações da instância são as seguintes:

  • Classe da instância: db.t2.large
  • Armazenamento: 100GiB gp2
  • Tamanho do banco de dados: 1,2 GiB

Estou tentando criar um mysqdump a partir de uma instância do EC2 localizada na mesma zona de disponibilidade que o db. Enquanto isso funciona, o desempenho é extremamente ruim. Demora cerca de 15 minutos para despejar o banco de dados (que é apenas 1.2 GiB em tamanho) com o mysqldump.

Eu tenho monitorado o uso do disco e da rede na instância do ec2. Nos primeiros 5 segundos do mysqldump, o uso da rede aumenta em torno de 600 Mbit / se, em seguida, cai para apenas cerca de 200 kbit / s. O mesmo com o uso do disco.

Estranhamente, reiniciar a instância do banco de dados parece corrigir o comportamento temporariamente. mysqldump terminou em 30 segundos uma vez, e tornou-se lento novamente depois.

As IOPS de gravação na instância de DB ficam em torno de 10 a 15, os iops de leitura excederam 20 após a reinicialização da instância.

Eu ficaria grato por qualquer conselho sobre como depurar ainda mais esta questão.

EDITAR:

Eu também devo adicionar meu comando mysqldump:

ubuntu@server:~$ mysqldump --version
mysqldump  Ver 10.13 Distrib 5.7.23, for Linux (x86_64)
ubuntu@server:~$ mysqldump -h <db_host> -p -P 3306 -u <read_only_user> --quick --single-transaction --skip-lock-tables <database> > dump.sql 
    
por winston 12.10.2018 / 12:23

1 resposta

1

Este é um caso clássico em que você foi atingido pelo desempenho expansível T2 / T3 .

Como você deve saber quando instâncias T2 / T3 estão inativas, elas acumulam "créditos de CPU" que eles usam para rodar rapidamente quando necessário. No entanto, esses créditos esgotam quando a instância está sendo executada em velocidade máxima e, quando não há nenhum, a instância fica mais lenta. Veja aqui para mais detalhes: Créditos de CPU e Desempenho de Linha de Base para Instâncias de Desempenho Burstable

Embora o acima apenas fale sobre créditos de CPU da experiência, eu sei que afeta diretamente o desempenho da rede , embora eu não tenha conseguido encontrar nenhum documento a esse respeito da Amazônia. E é isso que você observou também.

Para contornar, você tem duas opções:

  1. Mude para o tipo de instância M4 / M5 - eles têm desempenho constante e não são afetados pelos créditos da CPU. Eles são um pouco mais caros que T2 / T3 depois.

  2. Ativar configuração T2 ilimitada ( veja aqui ) que aumentará seus créditos de instância sempre que eles caírem para 0 por algum custo extra. Pode ser a melhor opção para o seu caso de uso. No entanto, note que rodar T2 ilimitado a toda velocidade é mais caro do que rodar M4 do mesmo tamanho.

Espero que ajude:)

    
por 12.10.2018 / 23:28