2010-12-15 15 views
2

我試圖優化一個運行MySQL和InnoDB存儲引擎的應用程序。你會如何解釋下面的innotop輸出?

當環境中生活,我得到下面的輸出運行innotop

When Load QPS  Slow QCacheHit KCacheHit BpsIn BpsOut 
Now 0.00 87.80  0  41.21% 100.00% 11.51k 836.42k 
Total 0.00 105.50 190  15.04%  99.34% 13.23k 692.85k 

WhenLoadQPSSlow是不言自明的。

但是對於QCacheHitKCacheHitBpsInBpsOut?一般來說,對於這些人來說,什麼被認爲是「好的」價值觀,我什麼時候該開始擔心?

回答

2

QCacheHitquery cache命中時間的百分比。 KCacheHitinnodb buffer pool被擊中的時間百分比(類似於key buffer)。 BpsIn是進入服務器的字節數,BpsOut是字節輸出。

QCacheHit應該比較高,如果您使用查詢緩存。你的利率看起來很低。 KCacheHit也應該相對較高,而且狀態良好。

BpsIn/Out並不重要,除非您試圖優化服務器發送/接收的數據量。

13

比率無用。認真。只要忽略它們。 http://www.mysqlperformanceblog.com/2010/02/28/why-you-should-ignore-mysqls-key-cache-hit-ratio/

是的,我是innotop的作者。我把這些功能放在人們不會問我的地方。

從文章:

摘要

本文要點:

  • 反比率是無意義的性能分析指標 ,因爲他們是一個)B的比值)計數器。
    • 你需要看絕對的幅度,而不是比率。
    • 對於性能分析,您需要 來衡量已用時間,而不僅僅是 發生的次數。
  • 在沒有定時信息,如果你信任的高速緩存的 創造者,假設未命中比命中更貴,那麼你 關心高速緩存未命中,而不是緩存命中。
  • Key_read不保證是一個隨機的物理I/O,但它可能是 。收集Key_reads/Uptime超過10秒或60秒的時間間隔,並將結果與​​IO系統的功能進行比較。
  • MySQL沒有很好的儀器來科學地選擇 key_buffer_size設置,但有許多不科學的方法 比基於比率的調整更好。
  • 計數器比率吸取了一切,而不僅僅是MyISAM調整。

我對這些觀點有過激烈的爭論,所以我不期望上面的 通過沒有爭議。但真的,現在是時候停止 關於櫃檯比率的壞建議。我們越早這樣做,我們就可以更快地做出更好的事情。