Lihat catatan ini di 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.)
Tampaknya ada yang menyebutkan sesuatu seperti ini di sini: Contoh MySQL berhenti "melakukan indeks SYNC"
Pertanyaan saya adalah: tindakan apa yang harus diambil, jika ada, ketika catatan ini terlihat di log?
Versi MySQL dan OS:
mysql-community-server- 5.7.9 -1.el7.x86_64
centos-release-7-1.1503.el7.centos.2.8.x86_64
Menjalankan SHOW VARIABEL SEPERTI 'innodb%'; seperti yang disarankan menunjukkan:
innodb_page_cleaners | 1
sumber
Kami mengalami masalah yang sama di berbagai klien dan menemukan bahwa masalahnya adalah karena menetapkan nilai innodb_lru_scan_depth dari default 1024 ke level 128. Meskipun menurunkan nilai mengurangi waktu yang dibutuhkan untuk memproses transaksi terutama dalam beban kerja tulis terikat Saya percaya bahwa pengaturan nilai terlalu rendah akan membuat buffer pool tidak dapat terus membersihkan beberapa buffer dan buffer pool halaman kotor.
Dalam kasus kami, kami telah melihat peningkatan drastis dengan meningkatkan nilai dari 128 menjadi 256 tetapi umumnya nilai yang tepat tergantung pada perangkat keras dan jenis beban. Caranya adalah dengan menemukan nilai yang tepat antara meningkatkan kinerja OLTP dan membiarkan MySQL menjaga buffer pool tetap bersih agar tidak perlu page_cleaner perlu melakukan banyak pekerjaan, seperti yang dinyatakan oleh pesan di atas ( "InnoDB: page_cleaner: 1000ms loop yang dimaksudkan mengambil 15888ms " ).
Nilai dapat diubah secara dinamis tanpa me-restart MySQL, misalnya
sumber
innodb_lru_scan_depth = 256
suatu tempat dimy.cnf
jalur muat Anda .Utas StackOverflow ini dapat bermanfaat ...
/programming/41134785/how-to-solve-mysql-warning-innodb-page-cleaner-1000ms-intended-loop-took-xxx
Ini pada dasarnya berarti, DB Anda terlalu banyak menulis sehingga BufferPool diisi dengan nilai-nilai kotor. Ini memicu PageCleaner untuk bertindak dan menghapus halaman kotor. Karena ada terlalu banyak halaman kotor dari biasanya, butuh lebih banyak waktu bagi PageCleaner untuk menghapus buffer.
innodb_lru_scan_depth
variabel tertentu mengontrol berapa banyak pemindaian kumpulan buffer yang harus dilakukan untuk pembersihan. Ini bisa menjadi nilai yang besar atau menulis throughput sistem sangat tinggi menyebabkan sejumlah besar halaman kotor.sumber