MySQL InnoDB Buffer Pool Hit Ratio Dropped: Memory and I/O Triage
Distinguishes cache warm-up, large scans and insufficient RAM behind a lower hit ratio; evaluates queries and memory settings safely.
Operational Safety & Risk Notice
This runbook contains operational intervention steps; several are write-impacting (KILL, terminate, DROP, RESIZE). Verify in a staging environment first, and apply sequentially in production with verification.
1. Symptom & Signals
- M16 uyarı eşiğinin altında; fiziksel okuma ve sorgu gecikmesi artıyor. Tek bir düşük oran, özellikle yeniden başlatma sonrası, olay kanıtı değildir.
2. Business & Technical Impact
Disk okuma yükü ve p95/p99 sorgu gecikmesi artabilir; bellek taşması veya OS swap daha ağır kesintiye yol açabilir.
3. Diagnosis & Root-Cause Analysis
SHOW GLOBAL STATUS WHERE Variable_name IN
('Innodb_buffer_pool_read_requests','Innodb_buffer_pool_reads','Uptime');
SHOW GLOBAL VARIABLES LIKE 'innodb_buffer_pool_size';5-10 dakika arayla iki örnek alın. Aralık isabeti = `1 - ΔInnodb_buffer_pool_reads / ΔInnodb_buffer_pool_read_requests`. Kümülatif başlangıç oranı geçici bozulmaları gizler.
4. Remediation & Action Plan
SET GLOBAL innodb_buffer_pool_size = <olculmus_bayt_degeri>;Yeniden başlatmada kalıcı olması için 5.7'de yapılandırma dosyası, 8.0'da uygun sürümde `SET PERSIST` veya yapılandırma yönetimi gerekir.
5. Verification & Health Checks
- İki örnek üzerinden hesaplanan isabet oranı yükselirken fiziksel okuma hızı ve p95 gecikmesi düşer.
- OS available RAM, swap, MySQL proses RSS ve replica gecikmesi stabil kalır.
6. Rollback & Contingency Plan
- Önceki bayt değerini `SET GLOBAL innodb_buffer_pool_size = <onceki_bayt_degeri>;` ile geri alın; kalıcı ayarı da düzeltin.
- Durdurulan raporu kontrollü hızla tekrar açın; yapılan indeks değişikliğini ayrıca değişiklik planıyla geri alın.