MySQL InnoDB Buffer Pool İsabet Oranı Düştü: Bellek ve I/O Triyajı
Buffer pool isabet düşüşünün ısınma, büyük tarama veya RAM yetersizliğinden kaynaklanıp kaynaklanmadığını ayırır; sorgu ve bellek ayarlarını kontrollü değerlendirir.
Operasyonel Güvenlik ve Risk Uyarısı
Bu runbook müdahale adımları içerir; birçok adım yazma etkilidir (KILL, terminate, DROP, RESIZE). Önce test ortamında deneyin, üretimde adımları sırayla ve doğrulayarak uygulayın.
1. Belirti / Symptom
- 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. Etki / 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. Teşhis / Diagnosis
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. Müdahale / Response
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. Doğrulama / Verification
- İ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. Geri Alma / Rollback
- Ö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.