web-dev-qa-db-fra.com

Mysql `innodb_log_file_size`: Quelle est la taille trop grande?

Dans de nombreuses - réponses , discussions et commentaires, la sagesse dominante semble être de "définir innodb_log_file_size pour être 25% du inndb_buffer_pool_size.

Qu'en est-il des piscines tampons assez grandes? Par exemple, j'ai un serveur avec 64Gib de mémoire et mon pool tampon est actuellement de 38Gib. 25% de celui-ci est de 9,5 Gib. Quels sont les risques d'utilisation d'un "grand" innodb_log_file_size Versus le laissant "trop ​​petit"?

Avec 64Gib disponible, je suis susceptible d'augmenter mon innodb_buffer_pool_size À quelque chose de plus élevé que 40Gib, éventuellement plus élevé. Quelque chose me rend nerveux sur une taille de fichier journal de 10 Gib +. Suis-je inquiétant inutilement?

3
Christopher Schultz

Vous devez trouver le bon compromis entre le temps de récupération en cas de crash et de la quantité de débit écriture que votre base de données sera attendue.

Percona a un excellent post Discuter d'un scénario similaire à la vôtre, avec un pool tampon de 64 Go et environ 2/5ème de la manière dont vous pouvez voir une belle comparaison qu'il fait entre un logfile de 2 Go et 15 Go .

15 Go permet à InnoDB suffisamment d'espace de journal sur des pages de rinçage "en douceur" du journal, tandis que avec 2 Go, il y a plus de pression pour que le journal de se remplir, ce qui a finalement fait mal à la performance en tant que pages à expulser. Dans les repères, ils citent, la performance est inférieure de 20% à la suite.

TL; DR Vous ne pouvez pas vraiment vous tromper avec un fichier journal plus grand, en particulier Si vous avez un esclave à basculer en cas de crash, mais vous pouvez certainement nuire aux performances avec une trop petite.

1
atomic77