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 mysql_使用systemtap调试工具分析MySQL的性能相关推荐

  1. mysql 调试分析利器_使用systemtap调试工具分析MySQL的性能

    [工具] SystemTap是 Linux 下的动态跟踪工具,可以方便的监控.跟踪运行中的程序或Linux内核操作,我们通过写SystemTap脚本(与 C语言 类似),编译为内核模块,然后加载到内核 ...

  2. systemtap mysql_用Systemtap探索MySQL

    Systemtap MySQL 支持 Dtrace probe, 即提供了一些Dtrace用的有用的观测点(probe). Systemtap同样也可以利用这些观测点, 可以作为一种低成本的观测MyS ...

  3. mysql join性能_Mysql Join语法解析与性能分析

    一.Join语法概述 join 用于多表中字段之间的联系,语法如下: ... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditiona table1 ...

  4. anemometer mysql_使用Anemometer分析MySQL慢查询记录

    数据库管理员一般是用percona的toolkit工具来分析MySQL慢查询记录,但是不够直观. 下面介绍一款比较直观的工具来统计分析MySQL慢查询记录anemometer. 在使用之前需要安装pe ...

  5. Mysql 索引优化分析_如何优化MySQL的性能?从索引方面优化案例分析

    今天我们来讲讲如何优化MySQL的性能,主要从索引方面优化. 建表 //建表 CREATETABLEIFNOTEXISTSstaffs( idINTPRIMARYKEYAUTO_INCREMENT, ...

  6. mongo mysql 聚合性能_Mongodb和Mysql的性能分析

    服务器配置: CPU: 1核    内存: 2048 MB (I/O优化)   网络带宽:1M centos 7.0 MongoDB 3.2 Mysql   5.6 服务器表数据量1184545条 M ...

  7. mysql 5.7 缺点_MySQL · 特性分析 · MySQL 5.7 外部XA Replication实现及缺陷分析

    MySQL 5.7 外部XA Replication实现及缺陷分析 MySQL 5.7增强了分布式事务的支持,解决了之前客户端退出或者服务器关闭后prepared的事务回滚和服务器宕机后binlog丢 ...

  8. mysql 索引分析工具_Mysql:性能分析以及Explain工具的使用

    ---恢复内容开始--- 1.介绍 Explain工具是用来分析sql语句性能的工具,他会显示出Mysql内部解析语句的状况 使用方法: explain+sql语句 例如 2.字段分析 一.ID字段 ...

  9. mysql not exists无效_分析MySQL中哪些情况下数据库索引会失效

    要想分析MySQL查询语句中的相关信息,如是全表查询还是部分查询,就要用到explain. 一.explain 用法:explain +查询语句. id:查询语句的序列号,上面图片中只有一个selec ...

最新文章

  1. php读取txt并写入数据库,php读取txt文件组成SQL并插入数据库的方法
  2. #20145238荆玉茗《网络对抗》-逆向及Bof进阶实践
  3. Redis持久化存储详解(一)
  4. 【IDEA】怎么把idea的目录结构,以文本形式输出?
  5. 域名发散--前端优化(三)
  6. r语言 精美rda图_R语言动态图可视化:如何、创建具有精美动画的图
  7. linux远程登录失败锁定,登录失败锁定策略配置登录超时策略禁用root远程登录脚本...
  8. mybatis---知识点复习
  9. Android 中 View的类关系图
  10. Debian9.5安装VNC并且配置vnc开机自启动
  11. 倍福 (BeckHOFF)PLC 使用随笔小记1
  12. Redis 保证数据一致性方案解析
  13. zabbix日志监控
  14. h5将数字翻译为大写汉字_js 将阿拉伯数字翻译成中文的大写数字
  15. U盘系统盘制作与系统安装(详细图解)
  16. C#子窗体控制父窗体dgv刷新
  17. 用户故事地图编写方法
  18. jquery国际化 i18n.js
  19. 《ZigBee实战演练》
  20. 【存储】GPFS简介及搭建

热门文章

  1. Juniper SRX防火墙系统会话链接的清除
  2. DEV GridLookUpEdit属性设置
  3. 免费下载精美网站模板的25个网站推荐
  4. 保定linux第一版PPT-SVN for Linux
  5. DynamipsGUI
  6. hdu 5067(状态压缩dp)
  7. poj 1948(搜索+剪枝)
  8. URAL 1091. Tmutarakan Exams
  9. NYOJ 123 士兵杀敌(四)
  10. NYOJ 590 相同的和