DBAtlas · Veritabanı operasyon atlası

Buffer pool yeterli mi: hit oranı, wait_free ve online resize

MySQLBellek

Komut

SELECT ROUND(@@innodb_buffer_pool_size / 1024 / 1024) AS bp_mb,
       @@innodb_buffer_pool_chunk_size / 1024 / 1024 AS chunk_mb,
       @@innodb_buffer_pool_instances AS instances;
SELECT
  ROUND(100 * (1 - (SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME = 'Innodb_buffer_pool_reads')
                 / NULLIF((SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME = 'Innodb_buffer_pool_read_requests'), 0)), 3) AS hit_pct,
  (SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME = 'Innodb_buffer_pool_pages_free') AS pages_free,
  (SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME = 'Innodb_buffer_pool_pages_dirty') AS pages_dirty,
  (SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME = 'Innodb_buffer_pool_wait_free') AS wait_free;

-- Online resize ve durum takibi
SET PERSIST innodb_buffer_pool_size = 8589934592;
SELECT VARIABLE_NAME, VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME LIKE 'Innodb_buffer_pool_resize_status%';

Ne yapar?

Buffer pool boyutunu, cache hit oranını, boş / dirty sayfa sayısını ve boş sayfa bekleme (wait_free) sayacını gösterir; boyutu restart'sız değiştirip ilerlemesini izler.

Ne zaman kullanılır?

Disk okuma IO'su yüksekken, sunucuya RAM eklendiğinde / çıkarıldığında veya kapasite planlamada.

Dikkat

Hit oranı tek başına yanıltıcıdır; %99 bile saniyede binlerce disk okuması olabilir. Innodb_buffer_pool_reads'in saniyelik artışına bak; wait_free > 0 buffer pool'un dar olduğunu veya page cleaner'ın yetişemediğini gösterir. Yeni boyut innodb_buffer_pool_chunk_size × instances katına yuvarlanır. Resize sırasında kısa süreli bekleme olabilir, küçültmede daha belirgindir; yoğun saatte yapma. Dedicated sunucuda başlangıç RAM'in %60–75'idir; bağlantı başına bellek, OS cache ve diğer süreçler için pay bırak, swap'e düşmek her zaman küçük buffer pool'dan kötüdür.

DBAtlas'ta aç →