Eu tenho um banco de dados MySQL que copia para um backup de 3,5 GB (mysqldump) em cerca de 10 minutos.
Mas o recarregamento deste backup em um servidor em espera / teste leva quase duas horas [originalmente 12 antes de algum ajuste].
Quais são algumas configurações que maximizam o desempenho do recarregamento?
Os mais promissores parecem ser innodb_buffer_pool_size, innodb_additional_mem_pool_size e innodb_log_buffer_size ... mas estou atingindo os limites da minha abordagem de tentativa e erro. Quais dessas configurações "devem" ser as mais importantes?
Por meio de tentativa e erro, não consegui obter mais de 70% de utilização da CPU e 63% de utilização de memória. Eu gostaria de ambos em 100% durante uma recarga.
Todas as tabelas são InnoDB.
UPDATE
Consegui reduzir o tempo de carregamento de 12 horas para 1h55min com estas configurações:
innodb_buffer_pool_size=192M
innodb_additional_mem_pool_size=96M
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=64M
innodb_file_per_table
key_buffer = 32M
max_allowed_packet = 32M
O servidor de teste é um Rackspace Cloud Server de 512 MB.
O servidor de produção é um Athlon 64 X2 4200 de 2 GB.
mysql Ver 14.12 Distrib 5.0.67, for debian-linux-gnu (i486) using readline 5.2
Não tenho certeza de quanto mais isso pode ser ajustado agora ... mas ainda me incomoda que apenas 63% da RAM disponível seja utilizada no meu mysqld durante a carga.
Eu não acho que isso seja um problema de limite de E / S de disco. O mesmo servidor pode copiar 20MB / s de um arquivo zip. Então, usando alguma matemática aproximada, apenas 6 minutos da 1h55m podem ser atribuídos à latência do disco. Então, isso deve estar ligado à CPU ou à memória, mas nenhum desses está indo para 100%.