您如何解释以下innotop输出?

时间:2010-12-15 13:48:50

标签: mysql database innodb

我正在尝试使用InnoDB存储引擎优化运行MySQL的应用程序。

在实时环境中运行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 个答案:

答案 0 :(得分:14)

比率无用。认真。只是忽略它们。 http://www.mysqlperformanceblog.com/2010/02/28/why-you-should-ignore-mysqls-key-cache-hit-ratio/

是的,我是innotop的作者。我把这些功能放进去,所以人们会不再问我。

来自文章:

  

摘要

     

本文的主要观点:

     
      
  • 作为绩效分析指标,计数器比率毫无意义   因为它们是a)b)计数器的比率。      
        
    • 您需要考虑绝对量值,而不是比率。
    •   
    • 进行性能分析时,您需要   测量经过的时间,而不仅仅是某些事情的次数   发生的情况。
    •   
  •   
  • 缺少时间信息,如果您信任缓存   创造者并假设未命中比命中更昂贵,那么你   关心缓存未命中,而不是缓存命中。
  •   
  • 不保证Key_read是随机物理I / O,但它   可能。将Key_reads /正常运行时间收集超过10秒或60秒   间隔并将结果与​​IO系统的功能进行比较。
  •   
  • MySQL没有很好的科学选择工具   key_buffer_size设置,但有许多不科学的方法   这比基于比率的调整要好。
  •   
  • 反制比率对所有事情都很糟糕,而不仅仅是MyISAM调整。
  •   
     

我对这些观点有一些激烈的争论,所以我没想到   以上通过没有争议。但实际上,是时候停下来了   关于反制比率的坏建议。我们越早做到这一点,   我们能越早开始做更好的事情。

答案 1 :(得分:2)

QCacheHitquery cache被击中的时间百分比。 KCacheHitinnodb buffer pool被点击的时间百分比(类似于key buffer)。 BpsIn是进入服务器的字节数,BpsOut是字节数。

如果您正在使用查询缓存,则

QCacheHit应该相对较高。你的费率似乎很低。 KCacheHit也应该相对较高,而且你状态良好。

除非您尝试优化服务器发送/接收的数据量,否则

BpsIn/Out并不重要。