从库延迟增大,MySQL日志出现InnoDB: page_cleaner: 1000ms intended loop took 17915ms.

今天同事负责的数据库从库出现从库延迟增大,MySQL日志InnoDB: page_cleaner: 1000ms intended loop took 17915ms.

了解原因,keepalived+MySQL主主复制架构,MySQL5.7版本,其中keepalived切换到备库后,在切换回来导致从库延迟增大,MySQL日志出现InnoDB: page_cleaner: 1000ms intended loop took 17915ms.

查看服务器top,发现CPU出现大量wait占用

同时,用iostat查看也发现util达到100%

网上查看方法:

1、调整innodb_page_cleaners为更大的值即可,最好保持跟innodb_buffer_pool_instances一致,但是要根据服务器的CPU实际核数调整

2、或者是叶老师写的 http://blog.itpub.net/7728585/viewspace-2157988/

3、How to solve mysql warning: "InnoDB: page_cleaner: 1000ms intended loop took XXX ms. The settings might not be optimal "? - Stack Overflow https://stackoverflow.com/questions/41134785/how-to-solve-mysql-warning-innodb-page-cleaner-1000ms-intended-loop-took-xxx

 

由于此服务器CPU为2核,内存为8G,并且跑着2个实例。所以硬件资源这块确实太弱了。

临时的想法,就是看看MySQL参数sync_binlog、innodb_flush_log_at_trx_commit是否设置的双1,改成0和2后,发现没有好转。看来硬件是没法在优化了,对服务器进行升级(云服务器)后从库性能恢复,开始猛追数据。

 

posted @ 2019-08-09 17:26  paul_hch  阅读(11816)  评论(0编辑  收藏  举报