• MySQL 快速定位性能问题


     
    一、性能查看几款小工具:
    Top 
      查看:观察 load average :1分钟,5分钟,15分钟的平均负载值
      1. us% 用户使用的 CPU 占比,如果 us% 太高, 极有可能索引使用不当。
      2. sy% 系统内核使用的CPU占比,如果sy% 太高,要注意MySQL 连接数以及MySQL 的锁信息。
      3. wa% io 使用 CPU 的占比,如果wa% 太高,要关注MySQL是否使用了硬盘临时表,或者大量的刷盘等操作,
      也有可能是硬盘太慢,或硬盘故障,可以使用iostat 等工具进行观察。
      
     Mpstat
       各个逻辑CPU 之间的负载是否均衡,(可能是中断不均衡导致性能问题),可以使用 mpstat 命令来进行详细观察。
       
    Vmstat
      通过vmstat 来观察每秒的进程、内存、swap、io、cpu 等详情情况。
      
    Iostat -x
      关注IO 使用情况  iostat -x 
      
      1.rrqm/s  #每秒读取的扇区数。
      2.wrqm/s #每秒写入的扇区数。
      3.avgrq-sz #平均请求扇区的大小
      4.qvgqu-sz #是平均请求队列的长度。
      5.await #每一个IO 请求的相应时间。
      6.%util #在统计时间内所有处理IO 时间,除以总共统计时,暗示了设备的繁忙程度。
     
    二、MySQL 查看
     
    1. tps,qps,并发连接数(thread_connected)、并发活跃线程数(thread_running)、临时表(tmp_disk_tables)、锁(locks_waited,Innodb_row_lock*)等指标。
    2.通过 show processlist ,查看当前是否有不良线程状态,例如:copy to tmp table 、creating sort index、sorting result,creating tmp table、长时间的 sending data等。
    3.关注InnoDB buffer pool page 的使用情况,主要是InnoDB pages_free、InnoDB wait_free 两个。
    4.关注 InnoDB 的 redo_log 刷新延迟,尤其是 checkpoint 延迟情况,并关注 unpurge list 大小。
    5.关注 innodb status 中是否有 long semaphore wait 情况的出现。
    6.观察是否有大事务的阻塞。
     
    参考: 田帅萌 3306 π
    https://github.com/enmotplinux/old_mysql_20181224/blob/master/sos.sh

  • 相关阅读:
    有return的情况下try_catch_finally的执行顺序
    java异常处理之try_catch_finally
    乔布简历
    策略模式--经典详细分析
    观察者模式(Observer Pattern)(二):HeadFirst中的气象站的实现
    luogu2444 [POI2000]病毒
    bzoj3172 luogu3966 [TJOI2013]单词
    luogu3808 luogu3796 AC自动机(简单版) AC自动机(加强版)
    vijos1459 车展
    poj2985 The k-th Largest Group
  • 原文地址:https://www.cnblogs.com/Camiluo/p/10187344.html
Copyright © 2020-2023  润新知