A importação do MySQL está diminuindo, E / S de alto volume do jbd2

1

Estou importando um arquivo .sql grande para o banco de dados MySQL de meus servidores,

No entanto, a importação importou apenas algumas tabelas e está atualmente no registro ~ 17mill de uma tabela. No entanto, a importação é pausada depois de cada mil registros e essas pausas estão ficando mais longas quanto mais registros são importados para a tabela. É basicamente vai parar em breve.

Estou pensando que isso poderia estar relacionado a algumas restrições de memória?

no entanto, a execução do iotop mostra que o processo jbd2 está usando uma grande quantidade de E / S de disco a qualquer momento.

isso pode ser uma causa? e se houver algum método para desabilitar o registro no diário até que a importação seja concluída?

    
por BradStevenson 05.03.2014 / 13:10

1 resposta

1

Ele não apenas copia os dados - o DBMS precisa gravar os dados em uma tabela e manter os índices. Para evitar a fragmentação dos índices e aumentar o throughput geral, ele adicionará uma carga inteira de registros por vez e também corrigirá os índices em partes - o que significa que haverá períodos em que ele está fazendo grandes volumes de gravações no (s) arquivo (s) de banco de dados e baixos volumes de leituras do arquivo de importação. À medida que os índices aumentam, é necessário mais trabalho para adicionar registros.

Desativar o journaling do sistema de arquivos ajudará na taxa de transferência. (provavelmente um benefício maior de ajustar o DBMS - mas isso requer muito mais esforço, tentativa e erro - o que não valerá a pena se suas restaurações não forem freqüentes).

    
por 05.03.2014 / 14:06