【工具】

SystemTap是 Linux 下的动态跟踪工具,可以方便的监控、跟踪运行中的程序或Linux内核操作,我们通过写SystemTap脚本(与 C语言 类似),编译为内核模块,然后加载到内核中运行,它带来的性能损耗比较小。

【两个应用举例】

一、 分析SQL语句在执行各个阶段的消耗

比如我们想统计一句SQL在解析阶段的执行时间,可以在mysqld进程的对应parse_sql函数上加探测点,统计函数执行时间

脚本如下:

示例如下,当前QPS约1.6W,包含了SQL执行过程中解析、redo、binlog、undo、网络、IO读、IO写上的消耗,由于涉及的函数较多,这部分后续还需要整理完善。

也可以用来分析一句SQL的执行性能

二、SQL执行时间统计分布

对于应用来说,主要关心 数据库 的吞吐量和响应时间,下面从应用负载的角度去衡量,服务器上当前执行SQL语句的性能分布情况

下图是1秒聚合的SQL语句的执行时间分布图,表示大部分SQL的执行时间在128us以下

【性能开销】

用sysbench做了简单压测,并发8线程时,运行stap脚本QPS从3.5W降到3.3W,性能损耗约6%;当并发32线程时,运行stap脚本QPS从9W降到7W,性能损耗约22%

【应用场景】

Systemtap功能非常强大,可以对mysqld进程下近25000个函数以及kernel下35000个函数自定义脚本进行跟踪统计,可用来分析内存、CPU、IO、网络等各种问题。

SystemTap的使用可以参考下面的文章:

1、听阿里云CDN安防技术专家金九讲SystemTap使用技巧

2、巧用Systemtap注入延迟模拟IO设备抖动

3、MYSQL数据库网卡软中断不平衡问题及解决方案

mysql 调试分析利器_使用systemtap调试工具分析MySQL的性能相关推荐

  1. c语言连接数据库例子,c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual help).doc...

    这是精心收集的精品经典资料,值得下载保存阅读! c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual h ...

  2. mysql实现心跳表_第29问:MySQL 的复制心跳说它不想跳了

    问题 最近年底,大家的数据库经常跑批量大事务,会发现复制突然断开,报错"心跳与本地信息不兼容": 会是什么原因? 实验 我们先来复现一下,再进行分析. 宽油,做一对主从数据库: 我 ...

  3. c 对一个mysql数据库进行操作_用C语言操作MySQL数据库

    函数 描述 mysql_affected_rows() 返回上次UPDATE.DELETE或INSERT查询更改/删除/插入的行数. mysql_autocommit() 切换autocommit模式 ...

  4. mysql超长sql查询_超长SQL怎么查询?MySQL列长度限制有哪些 | 学步园

    MySQL字符串的限制长度看似重要性不要,其实和整个MySQL数据库的安全性是息息相关的,很值得我们去深入研究分析.SQL注入攻击一直都在被广泛的讨论,然而人们却忽略了今天我将要介绍的这两个安全隐患, ...

  5. 系统崩溃mysql怎么保存表_第09问:MySQL 莫名崩溃,如何保留现场?

    问题 我的 MySQL 偶尔崩溃,如果需要追查原因,应该如何保留现场? 实验 MySQL 随着版本不停迭代,崩溃的现象越来越少,也越来越隐蔽. 一旦遇到生产环境上的 MySQL 崩溃,就需要保留现场信 ...

  6. mysql innodb 缓存设置_数据库分享一: MySQL的Innodb缓存相关优化

    无论是对于哪一种数据库来说,缓存技术都是提高数据库性能的关键技术,物理磁盘的访问速度永 远都会与内存的访问速度永远都不是一个数量级的.通过缓存技术无论是在读还是写方面都可以大大提 高数据库整体性能. ...

  7. mysql静态化设计_网站静态化与mysql优化

    一.伪静态 1.正则表达式的回顾 (1)要求取出练习的4个数字 (2)要求取出,形式为:xxx-yyy-xxx的数据 正则中几个概念: 子表达式:简单理解成用小括号括起的部分就是一个子表达式, 捕获: ...

  8. mysql主流使用版本_简述3个主流MySQL版本特性

    MySQL作为一个关系型数据库管理系统,在数据处理方面有其独特的优势.MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,使得MySQL占 ...

  9. ubuntu安装mysql 密码忘了怎么办_在ubuntu上面安装mysql都密码忘记及一些常用命令...

    重改密码! # /etc/init.d/mysql stop # mysqld_safe --user=mysql --skip-grant-tables --skip-networking & ...

最新文章

  1. MySQL这样写UPDATE语句,劝退
  2. atitti.atiNav 手机导航组件的设计
  3. 数据结构_栈和队列的区别
  4. linux io负载解决方法,看你的linux负载 io值
  5. shell unset之后数组元素个数为_PHP删除数组中指定值的元素的方法
  6. 理解ASP.NET Core中的中间件
  7. 跨平台、跨语言应用开发工具,Elements 介绍
  8. python父亲节祝福_父亲节祝福语精选简短 父亲节祝福语简短独特
  9. ajax post 传参数加引号和不加引号的区别
  10. 玩转 SpringBoot 2 快速搭建 | IntellJ IDEA篇
  11. 菜鸟入门【ASP.NET Core】6:配置的热更新、配置的框架设计
  12. atitit 文件搜索 映象文件夹结构模式.docxAtitit 百度网盘 文件 与跨机器 文件 搜索 查询 检索 解决方案 最小化索引法 映象文件夹结构模式. 1. 生成文件夹 结构信息 1
  13. 各级政府发布的BIM标准指南37套免费下载
  14. chrome清除缓存快捷键
  15. 傲腾内存 可以用ghost系统_windows xp sp3安装包用傲腾技术打造专业修图电脑配置...
  16. android 键盘快捷键大全,[键盘快捷键使用大全]AndroidStudio 快捷键使用总结大全.doc...
  17. 桌面运维问题快速定位原因的常用基本思路
  18. itext7学习笔记杂谈系列2——在itext7中添加中文(其他字体)和字体相关事
  19. CE修改植物大战僵尸豌豆射手的射速
  20. 爱读掌阅java版_爱读掌阅app官方下载-爱读掌阅旧版本 - 超好玩

热门文章

  1. html5测试 2345,HTML5实例测试
  2. php use as是什么意思,use关键字在PHP中的几种用法
  3. lwip协议栈优化_干货分享 | KNI性能优化实践
  4. 注意力机制~Attention Mechanism
  5. 基于MATLAB的FFT傅立叶分析
  6. MATLAB应用实战系列(五十一)-TXT数据的读取完美教程
  7. 基于MATLAB均值漂移图像分割技术
  8. MATLAB实战系列(三十五)-MATLAB基于BP神经网络的光伏发电太阳辐照度预测
  9. Python_Statsmodels包_时间序列分析_ARIMA模型
  10. python爬虫分析大学排名_Python爬虫获得国内高校排名,python,获取,大学排名