Voir cette note dans mysqld.log:
[Note] InnoDB: page_cleaner: 1000ms intended loop took 15888ms. The settings might not be optimal. (flushed=200 and evicted=0, during the time.)
Il semble y avoir quelque chose comme ça ici: Instance MySQL bloquant "faisant l'index SYNC"
Ma question est la suivante: quelle action doit être entreprise, le cas échéant, lorsque cette note apparaît dans les journaux?
Versions MySQL et OS:
mysql-community- server- 5.7.9
-1.el7.x86_64 centos-release-7-1.1503.el7.centos.2.8.x86_64
Lancer SHOW VARIABLES LIKE 'innodb%'; comme le montre la suggestion:
innodb_page_cleaners | 1
la source
Nous avons rencontré le même problème sur divers clients et nous avons découvert que le problème était dû à la définition de la valeur de innodb_lru_scan_depth de 1024 par défaut à 128. Bien que la réduction de la valeur réduise le temps nécessaire pour traiter une transaction, en particulier dans les charges de travail liées à l'écriture Je crois que définir une valeur trop basse rendrait le pool de tampons incapable de suivre en effaçant certains de ses tampons et pages sales du pool de tampons.
Dans notre cas, nous avons vu une amélioration drastique en augmentant la valeur de 128 à 256 mais généralement la bonne valeur dépend du matériel et du type de charge. L'astuce consiste à trouver la bonne valeur entre augmenter les performances OLTP et laisser MySQL garder le pool de tampons propre afin de ne pas avoir besoin du travail de page_cleaner , comme indiqué par le message ci-dessus ( "InnoDB: page_cleaner: boucle de 1000 ms) a pris 15888 ms " ).
La valeur peut être modifiée dynamiquement sans redémarrer MySQL, par exemple
la source
innodb_lru_scan_depth = 256
quelque part dans votremy.cnf
chemin de chargement.Ce fil StackOverflow peut être utile ...
/programming/41134785/how-to-solve-mysql-warning-innodb-page-cleaner-1000ms-intended-loop-took-xxx
Cela signifie essentiellement que votre base de données reçoit trop d'écritures provoquant le remplissage du BufferPool avec des valeurs sales. Cela déclenche le PageCleaner pour agir et effacer les pages sales. Comme il y avait trop de pages sales que d'habitude, le PageCleaner a mis plus de temps à vider le tampon.
innodb_lru_scan_depth
une variable particulière contrôle la quantité d'analyse du pool de mémoire tampon qui doit être effectuée pour l'effacement. Cela peut être une valeur élevée ou le débit d'écriture du système est vraiment élevé, provoquant un grand nombre de pages sales.la source