使用systemtap调试工具分析MySQL的性能

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

 【工具】

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使用技巧

https://yq.aliyun.com/articles/174916?utm_content=m_28902

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

http://blog.yufeng.info/archives/2935

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

责任编辑:庞桂玉 来源: 快资讯
相关推荐

2024-07-09 08:31:26

2018-03-13 11:38:14

2016-12-02 20:23:51

AndroidADB

2010-06-02 15:45:45

Linux 网络性能

2010-06-02 15:37:38

Linux 网络性能

2010-06-02 15:21:29

Linux 网络性能

2010-10-15 09:37:14

MySQL性能测试

2022-08-28 10:36:53

调试工具通用

2017-06-12 18:48:00

Android性能分析工具

2024-01-24 13:22:40

Python调试工具技巧

2023-11-10 09:20:28

Java工具

2015-05-04 09:48:44

JavaJava开发调试工具

2012-02-24 09:25:20

JavaScript

2011-08-15 17:38:48

iPhone开发调试工具

2015-05-25 14:13:18

Yahoo MySQL性能分析工开源

2016-03-29 10:32:34

2023-03-29 08:18:16

Go调试工具

2022-08-21 14:05:54

调试工具CDP

2024-02-23 10:00:27

Linux工具

2020-05-21 15:53:59

远程调试工具
点赞
收藏

51CTO技术栈公众号