Ist der Buffer Pool groß genug: Hit Ratio, wait_free und Online-Größenänderung
MySQLSpeicherBefehl
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 and status tracking
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%';Was es tut
Zeigt Buffer-Pool-Größe, Cache Hit Ratio, Anzahl freier / Dirty Pages und den Zähler für Wartezeiten auf freie Seiten (wait_free); ändert die Größe ohne Neustart und verfolgt den Fortschritt.
Wann einsetzen
Bei hoher Lese-IO, nach dem Hinzufügen / Entfernen von RAM oder bei der Kapazitätsplanung.
Vorsicht
Die Hit Ratio allein täuscht; selbst 99% kann Tausende Plattenlesevorgänge pro Sekunde bedeuten. Betrachte den Anstieg von Innodb_buffer_pool_reads pro Sekunde; wait_free > 0 bedeutet, dass der Buffer Pool zu klein ist oder die Page Cleaner nicht hinterherkommen. Die neue Größe wird auf ein Vielfaches von innodb_buffer_pool_chunk_size × Instanzen gerundet. Während einer Größenänderung sind kurze Hänger möglich, beim Verkleinern eher; meide Spitzenzeiten. Auf einem dedizierten Server mit 60–75% des RAM beginnen; lass Platz für Speicher pro Verbindung, OS-Cache und andere Prozesse, denn Swapping ist immer schlimmer als ein kleinerer Buffer Pool.