mysqlreport 使用说明

【本文参考自 http://hackmysql.com/mysqlreportguide】

在 mysql 中,我们可以使用 以下命令来获取当前数据库的实时状态,
show status;
show innodb status;
假如你需要跟友好的体验,那么建议使用 mysqlreport,它是一个第三方的 mysql 状态报告工具。

以下是 mysqlreport 完整的报告:

MySQL 5.0.3              uptime 0 0:34:26       Fri Sep  1 19:46:02 2006

__ Key _________________________________________________________________
Buffer used   380.00k of 512.00M  %Used:   0.07
  Current      59.32M            %Usage:  11.59
Write hit      97.04%
Read hit       99.58%
 
__ Questions ___________________________________________________________
Total          98.06k   47.46/s
  DMS          81.23k   39.32/s  %Total:  82.84
  QC Hits      16.58k    8.02/s           16.91
  COM_QUIT        200    0.10/s            0.20
  Com_            131    0.06/s            0.13
  -Unknown         82    0.04/s            0.08
Slow 5 s            0    0.00/s            0.00  %DMS:   0.00  Log:  ON
DMS            81.23k   39.32/s           82.84
  SELECT       64.44k   31.19/s           65.72         79.33
  INSERT       16.75k    8.11/s           17.08         20.61
  UPDATE           41    0.02/s            0.04          0.05
  REPLACE           0    0.00/s            0.00          0.00
  DELETE            0    0.00/s            0.00          0.00
Com_              131    0.06/s            0.13
  change_db       119    0.06/s            0.12
  show_fields       9    0.00/s            0.01
  show_status       2    0.00/s            0.00

__ SELECT and Sort _____________________________________________________
Scan               38    0.02/s %SELECT:   0.06
Range              14    0.01/s            0.02
Full join           3    0.00/s            0.00
Range check         0    0.00/s            0.00
Full rng join       0    0.00/s            0.00
Sort scan          14    0.01/s
Sort range         26    0.01/s
Sort mrg pass       0    0.00/s

__ Query Cache _________________________________________________________
Memory usage   17.81M of  32.00M  %Used:  55.66
Block Fragmnt  13.05%
Hits           16.58k    8.02/s
Inserts        48.50k   23.48/s
Prunes         33.46k   16.20/s
Insrt:Prune    1.45:1    7.28/s
Hit:Insert     0.34:1

__ Table Locks _________________________________________________________
Waited          1.01k    0.49/s  %Total:   1.24
Immediate      80.04k   38.74/s

__ Tables ______________________________________________________________
Open              107 of 1024    %Cache:  10.45
Opened            118    0.06/s

__ Connections _________________________________________________________
Max used           77 of  600      %Max:  12.83
Total             202    0.10/s

__ Created Temp ________________________________________________________
Disk table         10    0.00/s
Table              26    0.01/s    Size:  4.00M
File                3    0.00/s

__ Threads _____________________________________________________________
Running            55 of   77
Cache               0              %Hit:    0.5
Created           201    0.10/s
Slow                0    0.00/s

__ Aborted _____________________________________________________________
Clients             0    0.00/s
Connects            8    0.00/s

__ Bytes _______________________________________________________________
Sent           38.46M  18.62k/s
Received        7.98M   3.86k/s

__ InnoDB Buffer Pool __________________________________________________
Usage           3.95M of   7.00M  %Used:  56.47
Read hit       99.99%
Pages
  Free            195            %Total:  43.53
  Data            249                     55.58 %Drty:   0.00
  Misc              4                      0.89
  Latched           0                      0.00
Reads         574.56k     0.6/s
  From file       176     0.0/s            0.03
  Ahead Rnd         4     0.0/s
  Ahead Sql         2     0.0/s
Writes        160.82k     0.2/s
Flushes         1.04k     0.0/s
Wait Free           0       0/s

__ InnoDB Lock _________________________________________________________
Waits               0       0/s
Current             0
Time acquiring
  Total             0 ms
  Average           0 ms
  Max               0 ms

__ InnoDB Data, Pages, Rows ____________________________________________
Data
  Reads           225     0.0/s
  Writes          799     0.0/s
  fsync           541     0.0/s
  Pending
    Reads           0
    Writes          0
    fsync           0

Pages
  Created          23     0.0/s
  Read            226     0.0/s
  Written       1.04k     0.0/s

Rows
  Deleted      25.04k     0.0/s
  Inserted     25.04k     0.0/s
  Read         81.91k     0.1/s
  Updated           0       0/s

解读报告

第1行 报告头

包括数据库版本、数据库服务器运行时间、当前日期和时间。数据库服务器运行时间非常关键,假如该时间很短,那么使用 mydqlreport 得出的报告可能会误导你,所以建议在使用该工具时,uptime 应该是在24小时以上(本例中只有34分钟,故不准)。

第3-7行 索引报告

数据库的索引放在前面展示,说明索引的重要性。而且,这部分只能说明数据库(使用MyISAM,不包括InnoDB等其他存储引擎)Shared Key Buffer 的使用情况,并不能说明你的数据库索引的合理性。
(1)Buffer  used:key buffer 的使用情况,本例中的意思是目前 key_buffer_size 是512m,目前使用了380k,使用率是0.07%。其中,512m是指该项数据的峰值,不代表数据库服务器启动时就需要消耗这么多的系统物理内存,正常情况下,mysql会自动根据需要分配系统的内存,只要不要超过峰值即可。假如,其使用率达到80-90%,那就说明 key_buffer_size 应该增大了,但是其使用率不会超过95%,因为达到95%意味着其实已经使用了100%。
(2)Current:该项只支持mysql4.1.2 以上版本。根据系统变量 Key_blocks_unused 确定 mysql 目前使用的 key buffer,理论上该值应该<=key_buffer_size。根据该项和Buffer used 即可确定 key_buffer_size 是否合理。
(3)Write hit:该值=索引写入硬盘次数/索引写入内存次数 * 100%,一般<100%。若该数据库主要是进行 insert 和 update ,该值接近于 0 也是可以接受的;若是 select 操作为主,达到90%甚至以上也是正常的;当然>100%的情况也是存在的。
(4)Read hit:比Write hit 更有意义,该值=索引从硬盘读取次数/索引从内存内存次数 * 100%,该值不应该低于99%,假如低于99%(数据库服务器刚启动几个小时除外),说明出问题了(key_buffer_size太小)。

第9-26行 

该部分会从数据库的整体运行状况来告诉你数据库在忙什么,做的怎么样。

(1)Total

【待续】





你可能感兴趣的:(mysql,mysqlreport)