zoukankan      html  css  js  c++  java
  • MySQLReport


    简介:

    MySQLReport

    一、安装

    shell > yum -y install mysqlreport perl-DBD-MySQL

    二、使用

    shell > mysqlreport --user xxxx --password xxxx --socket /tmp/mysql.sock --flush-status --outfile 20180208.report
    
    MySQL 5.5.52-log         uptime 17 15:43:7      Wed Feb  7 11:25:42 2018
    
    # MySQL 版本,运行时间 ( 分析时,MySQL 最好已经运行一段时间,否则数据不准确 )
    
    __ Key _________________________________________________________________
    Buffer used     2.44G of   3.00G  %Used:  81.30            # Buffer 曾经最大使用内存量、率
      Current       3.00G            %Usage: 100.00            # 当前使用量、率,可以看到 Key_buffer_size 设太小了
    Write hit      66.70%                                    # ?
    Read hit       99.90%                                    # ?
    
    # MyISAM 存储引擎 Share (Key、Index) Buffer 相关参数。重要 !!!
    # Buffer used 使用率是不会超过 95% 的,官方文档说 Share Key Buffer 会将一部分内存给内部数据结构使用,
    # 所以当 Buffer used 使用率达到 95% 时,实际已经达到 100% 了。
    
    __ Questions ___________________________________________________________
    Total           1.14G   744.6/s                            # MySQL 总共响应过多少查询,响应频率(QPS)
      DMS           1.01G   659.7/s  %Total:  88.59            # Data Manipulation Statements 数据处理语句总数、QPS、占所有查询百分比。
      -Unknown    698.58M   458.0/s           61.50
      Com_        647.54M   424.5/s           57.01
      COM_QUIT    180.60M   118.4/s           15.90
    Slow 2 s      344.25k     0.2/s            0.03  %DMS:   0.03  Log:  ON  # 慢查询次数,%DMS 0.03 代表慢查询在DMS语句中的百分比,不要大于 0.05
    DMS             1.01G   659.7/s           88.59            # 这下面是各分类统计情况,如果开启查询缓存还会有 QC Hits 这个类别
      SELECT      774.87M   508.0/s           68.22         77.00             # 最后一个字段是子类别对分类的百分比 
      UPDATE      184.24M   120.8/s           16.22         18.31
      INSERT       40.54M    26.6/s            3.57          4.03
      REPLACE       3.91M     2.6/s            0.34          0.39
      DELETE        2.73M     1.8/s            0.24          0.27
    Com_          647.54M   424.5/s           57.01
      begin       231.41M   151.7/s           20.37
      commit      231.41M   151.7/s           20.37
      set_option  175.92M   115.3/s           15.49
    
    # 查看 MySQL 到底在做什么。重要 !!!
    # 会有五个分类:DMS (Data Manipulation Statements)、QC Hits、COM_QUIT、all other Com_commands、Unknown
    # 顺序是按第一个字段值排序的,如果 DMS、QC Hits 最靠前且百分比很高,说名是个很好的现象。
    
    __ SELECT and Sort _____________________________________________________
    Scan           32.45M    21.3/s %SELECT:   4.19            # SELECT 语句造成的全变扫描
    Range          29.97M    19.6/s            3.87            # 范围扫描
    Full join      11.69k     0.0/s            0.00            # 表连接
    Range check         0       0/s            0.00
    Full rng join       0       0/s            0.00
    Sort scan      55.50M    36.4/s                            # 全表扫描排序
    Sort range    137.91M    90.4/s                            # 范围扫描排序
    Sort mrg pass       0       0/s
    
    # 从在这里可以看出一些性能上的问题,全表扫描、表连接、排序等。
    # 这些都要特定分析,例如扫描: 如果表只有几十行跟有几百万行产生的影响肯定不一样。
    
    __ Table Locks _________________________________________________________
    Waited         43.15M    28.3/s  %Total:   3.82            # 等待表锁的次数、百分比,大于 10% 则表示索引设计不良或慢查询太多
    Immediate       1.09G   712.4/s                            # 不需要等待,可以立即获得锁的次数
    
    # 表锁相关,Waited 越低越好。
    
    __ Tables ______________________________________________________________
    Open             1024 of 1024    %Cache: 100.00            # 目前表打开的数量、最大打开数、table_open_cache 使用率
    Opened          4.03M     2.6/s                            # 表平均打开次数,该值越大说明 table_open_cache 太小,需要调大
    
    # 表缓存,如果 %Cache 为 100,那么可以尝试调大 table_open_cache (table_cache) 该值
    
    __ Connections _________________________________________________________
    Max used         3001 of 3000      %Max: 100.03            # 当前连接数,最大连接数,百分比
    Total         180.64M   118.4/s
    
    # MySQL Server 数据处理是很快的,最大连接数其实不是越大越好
    # 根本原因可能是慢查询、不合适的索引、DNS 解析等导致数据库处理速度下降,从而拉高最大连接数
    
    __ Created Temp ________________________________________________________
    Disk table      8.51M     5.6/s                            # 使用磁盘存放临时表的数量、百分比
    Table          74.84M    49.1/s    Size: 128.0M            # 当使用磁盘存放临时表时,可以适当调高 tmp_table_size
    File                7     0.0/s
    
    # 临时表,使用临时表本来就是个不好的事情,而使用磁盘存储更差,所以 Disk table 应该足够小。
    # 增加临时表内存大小、优化 SQL,减少临时表发生
    
    __ Threads _____________________________________________________________
    Running             4 of    9                            # 运行中的线程数,最大线程数
    Cached              6 of    8      %Hit:  92.24            # 线程缓存数,最大线程缓存数,线程缓存命中率
    Created        14.02M     9.2/s                            # 创建的线程数,每秒,越小越好,说明缓存命中
    Slow                0       0/s
    
    # 线程缓存,MySQL 启动时会创建几个线程,然后让连接复用,%Hit 越大越好,否则调整 thread_cache_size
    
    __ Aborted _____________________________________________________________
    Clients        71.49k     0.0/s
    Connects        4.30M     2.8/s
    
    # 中断
    
    __ Bytes _______________________________________________________________
    Sent          404.50G  265.2k/s
    Received      207.22G  135.9k/s
    
    # 流量
    
    __ InnoDB Buffer Pool __________________________________________________
    Usage         1021.81 of   1.00G  %Used:  99.79            # 缓冲命中率,越大越好
    Read hit      100.00%
    Pages
      Free            140            %Total:   0.21
      Data         60.55k                     92.40 %Drty:   0.06
      Misc           4842                      7.39
      Latched                                  0.00
    Reads         164.05G  107.5k/s                            # 读
      From file   503.62k     0.3/s            0.00
      Ahead Rnd         0       0/s
      Ahead Sql                 0/s
    Writes        112.11M    73.5/s                            # 写
    Flushes         9.26M     6.1/s                            # 刷新
    Wait Free           0       0/s                            # 等待
    
    # InnoDB 缓冲池,如果是一个 InnoDB 存储引擎的数据库,该值越大越好
    
    __ InnoDB Lock _________________________________________________________
    Waits               0       0/s
    Current             0
    Time acquiring
      Total             0 ms
      Average           0 ms
      Max               0 ms
    
    # InnoDB 锁,零更好
    
    __ InnoDB Data, Pages, Rows ____________________________________________
    Data
      Reads       535.37k     0.4/s
      Writes       16.00M    10.5/s
      fsync         8.78M     5.8/s
      Pending
        Reads           0
        Writes          0
        fsync           0
    
    Pages
      Created     165.06k     0.1/s
      Read        922.49k     0.6/s
      Written       9.26M     6.1/s
    
    Rows
      Deleted       2.32M     1.5/s
      Inserted      7.41M     4.9/s
      Read         70.18G   46.0k/s
      Updated       1.04M     0.7/s
  • 相关阅读:
    【字符编码】字符编码 && Base64编码算法
    【JVM】JVM系列之执行引擎(五)
    【JVM】JVM系列之类加载机制(四)
    【JVM】JVM系列之Class文件(三)
    【知识积累】DES算法之C#加密&Java解密
    appium多机并行测试
    Jenkins 传递自定义的参数
    python对ftp进行操作
    Linux下ftp服务器搭建
    appium +ios 判断元素是否存在,排除visible=“false”的数据
  • 原文地址:https://www.cnblogs.com/wangxiaoqiangs/p/8436444.html
Copyright © 2011-2022 走看看