De acordo com o artigo da Percona, a idade do checkpoint do MySQL pode congelá-lo: https://www.percona.com/blog/2011/04/04/innodb-flushing-theory-and-solutions/
Como posso calculá-lo? Como posso garantir que innodb_log_file_size de 134 mb seja suficiente para mim ou preciso aumentá-lo?
Esta é a seção LOG do SHOW ENGINE INNODB STATUS, mas qual é a fórmula correta? (e como faço para obter megabytes para comparar com innodb_log_file_size )
---
LOG
---
Log sequence number 26361002986468
Log buffer assigned up to 26361002986468
Log buffer completed up to 26361002986148
Log written up to 26361002986148
Log flushed up to 26361002902700
Added dirty pages up to 26361002986148
Pages flushed up to 26360959010673
Last checkpoint at 26360958543063
7934296064 log i/o's done, 669.00 log i/o's/second
Obrigado.
PS Estamos pensando em aumentar innodb_capacity_io do padrão 200 para, digamos, 500 ou 1000. (temos iops suficientes disponíveis)
Esses números de sequência são necessariamente grandes, números monotonicamente crescentes. Eles não são deslocamentos de byte no log. Você pode encontrar o número no log, se se divertir com despejos hexadecimais. (Eu não.)
Esse blog Percona, embora bom, tem uma década. Um log grande não atrasa mais a reinicialização tanto quanto antes.
Considere isso para julgar se deve aumentar (ou diminuir) o log_file_size:
Minutos entre as rotações de log do InnoDB =
Uptime / 60 * innodb_log_file_size / Innodb_os_log_written
60 minutos é um bom alvo, mas não é um alvo preciso.
A partir do 5.6.8, isso pode ser alterado dinamicamente; certifique-se de mudar também
my.cnf
.innodb_log_files_in_group
tradicionalmente tem sido 2. Eu sugiro que você use 2 a menos que você esteja em uma nova versão do MariaDB, onde não é mais necessário.