加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

MySQL性能突发事件问题排查技巧

发布时间:2019-02-01 09:42:52 所属栏目:建站 来源:崔虎龙
导读:副标题#e# 经过多年的实际经验,整理了一些材料,已Linux环境下MySQL性能突发事件问题排查技巧分享给大家。 作为DBA在面对性能上突发问题的时候,是否出现过束手无策,无从下手的经历。 其实性能无非问题点在于存储、操作系统, 应用程序,数据库 等方面。

⑥. INSERT BUFFER AND ADAPTIVE HASH INDEX

MySQL性能突发事件问题排查技巧

Ibuf:insertbuffer的一些信息,包括free list, segment size

Hash table:显示了hash table的一些信息最后一行显示了每秒进行了多少次hash搜索,以及非hash搜索

⑦. LOG

MySQL性能突发事件问题排查技巧

Log sequence number表示的是redo log buffer中的lsn

Log flushed up to表示的是redo log file中的lsn

Pages flushed up to表示的缓冲池最旧脏页的lsn

Last checkpoint at 指的就是最近一个物理页刷新到磁盘时,它的fil_page_lsn的变量值。

⑧. BUFFER POOL AND MEMORY

当前内存使用状态

MySQL性能突发事件问题排查技巧

Pages read ahead:显示了每秒线性预读跟随机预读的次数

备注:InnoDB 提供了两种预读的方式,一种是 Linear read ahead,由参数innodb_read_ahead_threshold控制,当你连续读取一个 extent 的 threshold 个 page 的时候,会触发下一个 extent 64个page的预读。另外一种是Random read-ahead,由参数innodb_random_read_ahead控制,当你连续读取设定的数量的page后,会触发读取这个extent的剩余page。InnoDB 的预读功能是使用后台线程异步完成。

⑨. ROW OPERATIONS

MySQL性能突发事件问题排查技巧

0 queries inside InnoDB, 0 queries in queue:显示了有多少线程在Innodb内核

read views open inside InnoDB:显示了有多少read view被打开了,一个read view是一致性保证的MVCC “snapshot”

备注:innodb多版本并发(MVCC)通过read view来确定一致性读时的数据库snapshot, innodb的read view确定一条记录能否看到,

在RC隔离级别下,是每个SELECT都会获取最新的read view;

在RR隔离级别下,则是当事务中的第一个SELECT请求才创建read view

7. SHOW STATUS LIKE 'innodb_row_lock_%'; — 锁性能状态

查看当前锁性能状态

MySQL性能突发事件问题排查技巧

解释如下:

Innodb_row_lock_current_waits:当前等待锁的数量

Innodb_row_lock_time:系统启动到现在、锁定的总时间长度

Innodb_row_lock_time_avg:每次平均锁定的时间

Innodb_row_lock_time_max:最长一次锁定时间

Innodb_row_lock_waits:系统启动到现在、总共锁定次数

8. SQL语句EXPLAIN; — 查询优化器

EXPLAIN执行计划部分,略过(后续专题分享)

作为一个DBA,问题排查技巧是每个工程师都需要掌握的核心技能。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读