首页 > 数据库 >转 pstack 命令 分析mysql hang

转 pstack 命令 分析mysql hang

时间:2022-08-15 17:33:59浏览次数:87  
标签:perf MySQL hang pstack https mysql 从库 延迟

pstack 主要分析mysql hang 的函数, 分析不了锁的情况,比较高深

 

参考文档

https://blog.csdn.net/n88Lpo/article/details/106484780

https://www.cnblogs.com/nanxiang/p/16012725.html

https://cloud.tencent.com/developer/article/1973397

 

##sample 1

故障分析 | MySQL 异地从库复制延迟案例一则

发布于2022-04-06 21:17:25阅读 730  

作者:任坤

现居珠海,先后担任专职 Oracle 和 MySQL DBA,现在主要负责 MySQL、mongoDB 和 Redis 维护工作。

本文来源:原创投稿

* 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


1、背景

线上某核心 MySQL ,版本为 5.6,本地机房1主2从,同时部署了一个异地从库。

从2月14号起异地从库开始报警复制延迟,一开始以为是网络波动导致就没有处理,但是2天后该报警依然存在且延迟越来越高。

2、诊断

登录该异地从库,首先甄别是不是IO复制线程引发的延迟。

该步骤很简单,查看 show slave status 的 Master_Log_File 是不是主库当前的 binlog ,如果是说明IO复制线程没有延迟,那就是 SQL 复制 线程引起的。

获取该 mysqld 的进程 ID ,执行 perf record -ag -p 11029 -- sleep 10; perf report

反复执行多次,每次都有 deflate_slow 且占据比例最高

将其展开,和压缩页有关联

pstack 11029 多次抓取现场,也是和压缩页有关。

该实例确实有个大表,并且只有异地从库开启了页压缩,将其行格式转为 dynamic 。

查看 Seconds_Behind_Master,延迟指标开始逐步下降,说明该方案生效了。

再次抓取 perf 和 pstack 现场。

--perf report

--pstack

可以看到和页压缩相关的 API 已经消失,再次确认了本次复制延迟和大表开启页压缩有直接关系。

3、小结

借助 perf 和 pstack 工具,能很快定位是压缩表引发的 SQL 线程复制延迟,将大表解压缩后最终解决该问题。

本文关键字:#从库延迟# #perf# #pstack#


关于SQLE

爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。

如何获取

类型

地址

版本库

https://github.com/actiontech/sqle

文档

https://actiontech.github.io/sqle-docs-cn/

发布信息

https://github.com/actiontech/sqle/releases

数据审核插件开发文档

 

 

标签:perf,MySQL,hang,pstack,https,mysql,从库,延迟
From: https://www.cnblogs.com/feiyun8616/p/16589023.html

相关文章

  • MySQL字段类型
    一、字符编码与配置文件'''MySQL的服务端字符编码默认使用的是latinl所以我们在写入中文的时候会出现乱码情况我们可以临时在把这个表的字符编码给改成utf8但是这样......
  • Docker 安装mysql 5.6
    一、dockerhub上面查找mysql镜像dockersearchmysql二、hub上拉取mysql镜像到本地标签为5.6dockerpullmysql:5.6三、使用mysql5.6镜像创建容器(也叫运行镜像)dockerru......
  • mysql 容器内部初始化
    mysql容器内部初始化我推到了dockerhub上一个镜像dockerpullliwenchao1995/mysql8:empty这个镜像是官方提供的mysql8版本,在容器内部把init的命令和要导入的sql放到......
  • mysql-递归查询
    0.背景最近接触到的业务中需要通过mysql查询部门的组织架构层级关系,最一开始的思路是想通过自定义函数来完成,但是查询效率真的是“感人”。又另辟蹊径找到mysql的递归查......
  • 2022-08-15 第六组 Myy 学习笔记_Mysql数据库
    Mysql数据库数据库数据库【按照数据结构来组织、存储和管理数据的仓库】,是一个长期存储载计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据对于公......
  • Mysql 8.0报错
    安装更新源sudoapt-getupdate更新软件`sudoapt-getupgrade下载wgethttps://dev.mysql.com/get/mysql-apt-config_0.8.14-1_all.debsudodpkg-imysql-apt-con......
  • MySQL连接相关
    官网:https://dev.mysql.com/doc/refman/8.0/en/performance-schema-processlist-table.html   interactive_timeout:交互式连接超时时间(mysql工具、mysqldump等)wai......
  • macOS change default shell from zsh to bash All In One
    macOSchangedefaultshellfromzshtobashAllInOne$cat/etc/shells#Listofacceptableshellsforchpass(1).#Ftpdwillnotallow......
  • 搞定面试官 - 可以介绍一下在 MySQL 中你平时是怎么使用 COUNT() 的嘛?
    大家好,我是程序员啊粥。相信在大家的工作中,有很多的功能都需要用到count(*)来统计表中的数据行数。同时,对于一些大数据的表,用count都是瑟瑟发抖,往往会结合缓存等进行......
  • MySQL使用Explain查看执行计划
    概述Explain模拟优化器执行SQL语句,在5.6以及以后的版本中,除了select,其他insert,update和delete均可以使用explain查看执行计划,从而知道mysql是如何处理sql语句,分析查询语句......