InnoDBをチューニングする際に,
バッファプールサイズよりもデータサイズが大きい場合は,
今回は,
SHOW GLOBAL STATUS
まずは,SHOW GLOBAL STATUS
構文を使って確認してみます。
mysql> SHOW GLOBAL STATUS LIKE 'InnoDB\_buffer\_pool%'; +---------------------------------------+--------------------------------------------------+ | Variable_name | Value | +---------------------------------------+--------------------------------------------------+ | Innodb_buffer_pool_dump_status | Dumping of buffer pool not started | | Innodb_buffer_pool_load_status | Buffer pool(s) load completed at 190508 18:19:37 | | Innodb_buffer_pool_resize_status | | | Innodb_buffer_pool_pages_data | 263342 | | Innodb_buffer_pool_bytes_data | 4314595328 | | Innodb_buffer_pool_pages_dirty | 0 | | Innodb_buffer_pool_bytes_dirty | 0 | | Innodb_buffer_pool_pages_flushed | 268171 | | Innodb_buffer_pool_pages_free | 392018 | | Innodb_buffer_pool_pages_misc | 0 | | Innodb_buffer_pool_pages_total | 655360 | | Innodb_buffer_pool_read_ahead_rnd | 0 | | Innodb_buffer_pool_read_ahead | 0 | | Innodb_buffer_pool_read_ahead_evicted | 0 | | Innodb_buffer_pool_read_requests | 244304743 | | Innodb_buffer_pool_reads | 1345 | | Innodb_buffer_pool_wait_free | 0 | | Innodb_buffer_pool_write_requests | 114563219 | +---------------------------------------+--------------------------------------------------+ mysql> SHOW GLOBAL STATUS LIKE 'Innodb\_pages%'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | Innodb_pages_created | 712 | | Innodb_pages_read | 21284 | | Innodb_pages_written | 13246 | +----------------------+-------+
LIKE 'InnoDB\_buffer\_pool%'
とLIKE 'Innodb\_pages%'
をつけて実行することで,
バッファプールの現在の状態
- Innodb_
buffer_ pool_ pages_ total - バッファプールに割り振られているページの合計
- Innodb_
buffer_ pool_ pages_ data - バッファプールにキャッシュされているデータのページの合計
- Innodb_
buffer_ pool_ pages_ dirty - バッファプール内で変更されているページの合計
(ダーティページ) - Innodb_
buffer_ pool_ pages_ free - バッファプールの空きリストのページの合計
- Innodb_
buffer_ pool_ pages_ misc - バッファプールのadaptive hash indexなどで確保されたその他のページの合計
これらの値を確認することで,Innodb_
などもありますが,
バッファプールへのアクセス情報
- Innodb_
buffer_ pool_ pages_ flushed - バッファプールからディスクへフラッシュした総数
- Innodb_
buffer_ pool_ write_ requests - バッファプールに書いたページ総数
- Innodb_
buffer_ pool_ read_ requests - バッファプールから読んだページ総数
- Innodb_
buffer_ pool_ reads - ディスクから読んでバッファプールにロードしたページ総数
- Innodb_
pages_ created - バッファプールに作成されたページの総数
- Innodb_
pages_ written - バッファプールからディスクに書き込まれたページの総数
これらの値は累積値で,
たとえば,Innodb_
がカウントされます。ロードされた後,Innodb_
もカウントされます。また,Innodb_
のみカウントされます。
よって,
パッファープールヒット率 =
(1 - ( Innodb_buffer_ pool_ reads / Innodb_ buffer_ pool_ read_ requests )) * 100
また,Innodb_
とInnodb_
の差分を表示しています。
mysqladmin -p extended-status -i 1 -r | grep -e Innodb_buffer_pool_read_requests -e Innodb_buffer_pool_reads | Innodb_buffer_pool_read_requests | 81861| | Innodb_buffer_pool_reads | 66724| | Innodb_buffer_pool_read_requests | 7| | Innodb_buffer_pool_reads | 0| | Innodb_buffer_pool_read_requests | 7| | Innodb_buffer_pool_reads | 0|