web-dev-qa-db-ja.com

innodbバッファー使用量の取得

MySQL 5.5.52を実行しています。innodbバッファープールの使用量を確認しようとしています。 「show engine innodb status」を実行すると、次のようになります。

----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 10731520; in additional pool allocated 0
Dictionary memory allocated 1823022
Buffer pool size   639
Free buffers       0
Database pages     638
Old database pages 215
Modified db pages  0
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 16622990, not young 0
0.00 youngs/s, 0.00 non-youngs/s
Pages read 19765731, created 109264, written 174555
0.00 reads/s, 0.00 creates/s, 0.00 writes/s
No buffer pool page gets since the last printout
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 638, unzip_LRU len: 0
I/O sum[0]:cur[0], unzip sum[0]:cur[0]

使用量を教えてくれるものはありますか?

MySQLワークベンチを実行すると、InnoDB Buffer Usage:79.2%が表示されますが、GUIからだけでなく、SQLを使用してプログラムでこれを取得する方法が必要です。どうやってやるの?

3
Larry Martell

SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_free'およびSHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_pages_total'を使用すると、このパーセンテージを導出できます。

0のpage_freeは致命的ではなく、必要な場合でも悪くないことに注意してください。これは、読み取りがディスクまたはページキャッシュから行われることを意味します。この速度が発生するのは、innodb_buffer_poolのサイズに関連するパフォーマンスにとってより重要です。

4
danblack