• MySQL 监控-innotop


    innotop 编写者Balon Schwartz,《高性能MySQL》的作者之一。
    innotop的作用为实时地展示服务器正在发生的事情,监控innodb,监控多个MySQL实例,是一款MySQL运维和问题定位分析的工具。

    具体特性 :
    事务列表可以显示Inoodb当前的全部事务
    查询列表可以显示当前正在运行的查询
    可以显示当前锁和锁等待的列表
    以相对值显示服务器状态和变量的汇总信息
    有多种模式可用来显示Innodb内部信息(缓冲区、死锁、外键错误、I/O活动、行操作、信号量)
    复制监控,将主服务器和从服务器的状态显示在一起
    显示任意服务器变量的模式
    服务器组可以更方便地组织多台服务器
    在命令行脚本下可以使用非交互式模式

    本文主要介绍innotop的常用方式-主用于现网MySQL服务器的问题监控和定位。


    1. 监控方式
      innotop -uroot -proot -h127.0.0.1
    Uptime  MaxSQL  ReplLag  QPS    Cxns  Run  Miss  Lock  Tbls  Repl  SQL
      2d6h                   10.23   316       0.00     0    64           
    

    输入?,则进入帮助页面


     
    innotop.jpg

    第一部分为可切换的模式-输入相应的大写字母
    第二部分可进行的操作-输入相应的小写字母
    第三部分 其他-配置类操作

    1. Q Query List
      innodb中最常用的模式,输入大写Q,进入该模式的视图页面。
    [RO] Query List (? for help)                                                                                                                                                                                   localhost, 17d, 10.47 QPS, 58/1/59 con/run/cac thds, 5.6.29-log
    When   Load  Cxns    QPS    Slow    Se/In/Up/De%  QCacheHit  KCacheHit  BpsIn  BpsOut
    Now    0.05  58      10.47   0      32/ 0/ 0/ 0       0.00%    100.00%  5.60k  20.38k
    Total  0.00   7.81k  14.99  11.01k  36/ 2/ 2/ 0       0.00%     99.99%  2.55k  20.79k
    Cmd    ID      State  User   Host     DB      Time   Query
    

    参数详解
    Load 是负载
    QPS (Query Per Second) 表示每秒的查询率
    Slow 代表慢查询的个数
    Se/In/Up/De%: 查询/插入/更新/删除的比例
    QCacheHit:查询缓冲的命中率
    KCacheHit:索引的命中率
    BpsIn (bytes Per Second in) 每秒输入的字节数
    BpsOut(bytes Per Second Out)每秒输出的字节数
    在这个页面,可输入e、f、o等键
    e键 : 按e并输入thread ID,就能显示该SQL的执行计划
    f键 : 显示当前正在运行的完整SQL语句
    o键 : 显示当前SQL被mysql内部优化后的SQL

    1. B InnoDB Buffers
      模式显示有关InnoDB Buffer Pool,页面统计,插入缓冲,自适应哈希索引。
      使用的是show innodb status的数据。
    ____________________________ Buffer Pool _____________________________
    Size    Free Bufs  Pages  Dirty Pages  Hit Rate     Memory  Add'l Pool
    63.99k      13207  48854            0  1000 / 1000   1.02G           0
    ____________________ Page Statistics _____________________
    Reads  Writes  Created  Reads/Sec  Writes/Sec  Creates/Sec
    21299  240690    29436       0.00        0.61         0.00
    ______________________ Insert Buffers ______________________
    Inserts  Merged Recs  Merges  Size  Free List Len  Seg. Size
                       0       0     1           1316       1318
    __________________ Adaptive Hash Index __________________
    Size   Cells Used  Node Heap Bufs  Hash/Sec  Non-Hash/Sec
    2.26M                        3467      0.04        139.75
    

    Buffer Pool
    Size : 某sql使用Buffer Pool的大小
    Free Bufs : Innodb_buffer_pool_pages_free的值,空页数;
    Pages: Innodb_buffer_pool_pages_data的值, 包含数据的页数(脏或干净)
    Dirty Pages : Innodb_buffer_pool_pages_dirty的值,当前的脏页数
    Hit Rate: 命中率
    Memory : Innodb_buffer_pool_size 的值.
    Add'l Pool : innodb_additional_mem_pool_size的值
    Page Statistics
    Reads : Innodb_pages_read 的值,读取的页数
    Writes : Innodb_pages_written 的值,写入的页数
    Created : Innodb_pages_created 的值,创建的页数
    Reads/Sec : 每秒读取的页数
    Writes/Sec : 每秒写入的页数
    Creates/Sec : 每秒创建的页数
    Insert Buffers
    Inserts : 表示执行insert 次数
    Merged Recs : 表示执行 insert 索引树合并的次数
    Merges: insert 语句合并的次数
    Size: 写缓冲的大小
    Free List Len : 空闲列表长度
    Seg. Size:  段块大小
    Adaptive Hash Index 自适应哈希索引
    Size: 哈希索引占用大小
    Cells Used:
    Node Heap Bufs:
    Hash/Sec: 每秒哈希索引量
    Non-Hash/Sec: 每秒非哈希索引的量

    1. D InoDB Deadlocks
      显示innodb产生的死锁,和产生死锁的语句。
    ______________________ Deadlock Transactions ______________________
    ID  Timestring  User  Host  Victim  Time  Undo  LStrcts  Query Text
    ____________________ Deadlock Locks ____________________
    ID  Waiting  Mode  DB  Table  Index  Special  Ins Intent
    

    参数详解:
    ID:连接线程ID号
    Timestring : 死锁发生的时间
    User: 用户名
    Host:主机
    Victim:Yes表示这个死锁SQL被强行终止了.No表示这个SQL正在执行
    Time : 这条SQL的运行时间
    Undo : 回滚
    LStrcts: 不知道是什么的缩写
    Query Text : 死锁执行的SQL

    1. I InnoDB I/O Info
      显示InnoDB的I / O统计,包括I / O线程,挂起的I / O,文件I / O,日志统计
    _________________________ I/O Threads __________________________
    Thread  Purpose               Thread Status                     
         0  insert buffer thread  waiting for completed aio requests
         1  log thread            waiting for completed aio requests
         2  read thread           waiting for completed aio requests
         3  read thread           waiting for completed aio requests
         4  read thread           waiting for completed aio requests
         5  read thread           waiting for completed aio requests
         6  write thread          waiting for completed aio requests
         7  write thread          waiting for completed aio requests
         8  write thread          waiting for completed aio requests
         9  write thread          waiting for completed aio requests
    ____________________________ Pending I/O _____________________________
    Async Rds  Async Wrt  IBuf Async Rds  Sync I/Os  Log Flushes  Log I/Os
                                       0          0            0         0
    ________________________ File I/O Misc _________________________
    OS Reads  OS Writes  OS fsyncs  Reads/Sec  Writes/Sec  Bytes/Sec
       22142    1163454     982096       0.00        0.00          0
    _____________________ Log Statistics ______________________
    Sequence No.  Flushed To   Last Checkpoint  IO Done  IO/Sec
    20178545268   20178545268  20178545268       870538    0.00
    

    Pending I/O 挂起的IO
    Async Rds : Asynchronous Reads 异步读
    Async Wrt: : Asynchronous Write 异步写
    IBuf Async Rds: : Innodb Buffer Asynchronous Reads 缓冲池的异步读
    Sync I/Os: : Asynchronous Input/Output:的异步
    Log Flushes : log Flushes
    Log I/Os : Input/Output 异步写入/读出日志
    File I/O Misc(文件IO)
    OS Reads: 系统I./O的读
    OS Writes: 系统.I/O的写
    OS fsyncs: 系统文件同步
    Reads/Sec: 每秒多少次读
    Writes/Sec: 每秒多少次写
    Bytes/Sec: 每秒多少字节的输入输出
    Log Statistics(日志统计)
    Sequence No: Innodb buffer 里面的 LSN 号
    Flushed To: 刷新到事务日志的LSN号
    Last Checkpoint:: LSN的检查点
    IO Done: 多少I/O已经完成
    IO/Sec: 每秒I/O次数


    通过以上的几个命令就可以快速地找到死锁,InnoDB buffer使用情况,I/O的使用情况,当前正在运行的SQL等,可满足最基本的运维监控和问题定位,且不用记和输入多次命令噢,实用性很强。

    PS: innotop安装 yum install innotop



    作者:灼灼2015
    链接:https://www.jianshu.com/p/b8508fe10b8e
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    gitLab 全局hooks和custom_hooks,以及服务器端自动更新和备份(三)
    ORACLE的Copy命令和create table,insert into的比较
    计算机基础
    在C#应用中使用Common Logging日志接口
    数据库设计原则(转载)
    Oracle中函数如何返回结果集
    ORACLE时间常用函数(字段取年、月、日、季度)
    SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
    sql server日期时间转字符串
    SQL Server删除用户失败的解决方法
  • 原文地址:https://www.cnblogs.com/liang545621/p/6913158.html
Copyright © 2020-2023  润新知