innodb 內存評估原則
通常InnoDB存儲引擎的緩衝池的命中率不應該小於99%。
緩衝池命中率 = (Innodb_buffer_pool_read_requests)/(Innodb_buffer_pool_read_requests + Innodb_buffer_pool_read_ahead + Innodb_buffer_pool_reads)
innodb_buffer_pool_read_requests
命中率 =-------------------------------------------------------------------------------------------------
(innodb_bufer_pool_read_requests + innodb_buffer_pool_read_ahead + innodb_buffer_pool_reads )
平均每次讀取的字節數 = Innodb_data_read/Innodb_data_reads
Innodb_buffer_pool_reads:表示從物理磁盤讀取的頁數
Innodb_buffer_pool_read_ahead:預讀的頁數
Innodb_buffer_pool_read_ahead_evicted:預讀的頁數,但是沒有被讀取就從緩衝池中被替換的頁的數量,一般用來判斷預讀的效率。
Innodb_buffer_pool_read_requests:從緩衝池中讀取的次數。
Innodb_data_read:總共讀入的字節數。
Innodb_data_reads:發起讀請求的次數,每次讀取可能需要讀取多個頁。
mysql> show global status like 'innodb%read%';
Innodb_buffer_pool_read_ahead_rnd 0
Innodb_buffer_pool_read_ahead 651270
Innodb_buffer_pool_read_ahead_evicted 792
Innodb_buffer_pool_read_requests 6652087462
Innodb_buffer_pool_reads 1643398
Innodb_data_pending_reads 0
Innodb_data_read 42994913280
Innodb_data_reads 2635909
Innodb_pages_read 2624075
Innodb_rows_read 6299272374
innodb_buffer_pool_read_requests
命中率 =-------------------------------------------------------------------------------------------------
(innodb_bufer_pool_read_requests + innodb_buffer_pool_read_ahead + innodb_buffer_pool_reads )
6644810356
命中率 = ---------------------------- = 99.96% 約接近 1 越好 (證明內存足夠)
6644810356 + 651270 + 1643325