技术分享 | MySQL 监控利器之 Pt-Stalk

MCU 微控制器,在实际项目中如何选型(以 STM32为例) 1.MCU 选型需要考虑的一些因素 2.案例:传感器设备的 MCU 选型 阅读详情

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


一、概述

之前在社区发了一篇故障分析 | 有效解决 MySQL 行锁等待超时问题文档,主要介绍了下行锁超时的监控方法,下方评论中有人提到了 pt-stalk 工具也可以监控行锁超时,因为个人没怎么用过这个工具,所以下意识的就去 google 了一下。因为没找到有介绍具体监控输出的文档,就以为这个工具没法监控行锁等待,最后果断被打脸了。

以上是个小插曲,个人在本地测试了下 pt-stalk 的监控输出后,发现其监控项远远比我预测的多,用起来也比较方便,所以在这里分享下这个工具。

二、介绍

首先介绍下 pt-stalk,它是 Percona-Toolkit 工具包中的一个工具,说起 PT 工具包大家都不陌生,平时常用的 pt-query-digest、pt-online-schema-change 等工具都是出自于这个工具包,这里就不多介绍了。

pt-stalk 的主要功能是在出现问题时收集 OS 及 MySQL 的诊断信息,这其中包括:

  1. OS 层面的 CPU、IO、内存、磁盘、网络等信息;
  2. MySQL 层面的行锁等待、会话连接、主从复制,状态参数等信息。

而且 pt-stalk 是一个 Shell 脚本,对于我这种看不懂 perl 的人来说比较友好,脚本里面的监控逻辑与监控命令也可以拿来参考,用于构建自己的监控体系。

三、使用

接着我们来看下如何使用这个工具。

pt-stalk 通常以后台服务形式监控 MySQL 并等待触发条件,当触发条件时收集相关诊断数据。

触发条件相关的参数有以下几个:

  • function:
  • 默认为 status,代表监控 SHOW GLOBAL STATUS 的输出;
  • 也可以设置为 processlist,代表监控 show processlist 的输出;
  • variable:
    • 默认为 Threads_running,代表 监控参数,根据上述监控输出指定具体的监控项;
  • threshold:
    • 默认为 25,代表 监控阈值,监控参数超过阈值,则满足触发条件;
    • 监控参数的值非数字时,需要配合 match 参数一起使用,如 processlist 的 state 列;
  • cycles:
    • 默认为 5,表示连续观察到五次满足触发条件时,才触发收集;

连接参数:host、password、port、socket。

其他一些重要参数:

  • iterations:该参数指定 pt-stalk 在触发收集几次后退出,默认会一直运行。
  • run-time:触发收集后,该参数指定收集多长时间的数据,默认 30 秒。
  • sleep:该参数指定在触发收集后,sleep 多久后继续监控,默认 300 秒。
  • interval:指定状态参数的检查频率,判断是否需要触发收集,默认 1 秒。
  • dest:监控数据存放路径,默认为 /var/lib/pt-stalk。
  • retention-time :监控数据保留时长,默认 30 天。
  • daemonize:以后台服务运行,默认不开启。
  • log:后台运行日志,默认为 /var/log/pt-stalk.log。
  • collect:触发发生时收集诊断数据,默认开启。
    • collect-gdb:收集 GDB 堆栈跟踪,需要 gdb 工具。
    • collect-strace:收集跟踪数据,需要 strace 工具。
    • collect-tcpdump:收集 tcpdump 数据,需要 tcpdump 工具。

下面是一段 Percona 官方贴的伪代码,逻辑也比较清晰,大家可以看下:

while true; do
   if --variable from --function > --threshold; then
      cycles_true++
      if cycles_true >= --cycles; then
         --notify-by-email
         if --collect; then
            if --disk-bytes-free and --disk-pct-free ok; then
               (--collect for --run-time seconds) &
            fi
            rm files in --dest older than --retention-time
         fi
         iter++
         cycles_true=0
      fi
      if iter < --iterations; then
         sleep --sleep seconds
      else
         break
      fi
   else
      if iter < --iterations; then
         sleep --interval seconds
      else
         break
      fi
   fi
done
rm old --dest files older than --retention-time
if --collect process are still running; then
   wait up to --run-time * 3 seconds
   kill any remaining --collect processes
fi
四、使用场景

下面是几个我个人可以想到的关于 pt-stalk 的使用场景:

4.1 场景一

后台运行 pt-stalk 监视 SHOW GLOBAL STATUS 中的 Threads_connected 状态值,即如果 客户端连接数 连续 5 次超过 1000,则触发收集主机和 MySQL 的性能与状态信息。

pt-stalk  --function status --variable Threads_connected --threshold 2500 --daemonize --user=root --password=######
4.2 场景二

后台运行 pt-stalk 监视 SHOW GLOBAL STATUS 中的 Threads_running 状态值,即如果活跃线程数连续 5 次超过 500,则触发收集主机和 MySQL 的性能与状态信息。

pt-stalk  --function status --variable Threads_running --threshold 500 --daemonize --user=root --password=######
4.3 场景三

非后台模式下立即收集主机和 MySQL 的性能与状态信息 60s,等待 180s 自动退出,无需任何触发条件,主要用于临时保留问题场景信息,便于事后分析。

pt-stalk --no-stalk --run-time=60 --iterations=1 --user=root --password=Gepoint

五、监控输出

接着来看下 pt-stalk 可以监控些什么信息,如下图所示:

从上图可见输出文件有很多,基本从文件名字就可以知道内容是什么,且大多数文件都是以命令来命名的,这里就不一一介绍了。

有些比较重要的监控项我用红标指示了,对于排查问题帮助比较多。

对于本文最开始所说的 pt-stalk 也可以监控行锁等待信息,其实就是依赖于 lock-waits 与 transactions 2 个监控文件。

我们来看下其内容:

首先是 lock-waits 日志,其实与我之前的后台监控脚本输出有点类似,不过这里信息更加丰富。

然后是 transactions ,记录了所有活动事务的详细信息,更加利于分析行锁等待情况。

虽然 lock-waits 与 transactions 2 个监控文件详细的记录了阻塞情况,但还是存在那个问题,如果原因是 事务挂起,还是需用借用 general_log 分析整个事务。

六、pt-sift

在学习 pt-stalk 的时候,发现 PT 工具包里专门有个工具用于分析 pt-stalk 采集的数据,那就是 pt-sift。

pt-sift 可以根据之前 pt-stalk 监控采集的数据进行汇总性的展示,使用比较简单,下面是其输出示例:

七、小结

pt-stalk 工具个人感觉还不错,尤其是其丰富的监控项,与其特有的触发式监控机制。

对于没有部署监控系统,但为了临时排查解决 MySQL 问题的环境非常有效。

最后对于 pt-stalk 再总结两点:

  1. pt-stalk 适合在 MySQL 本地环境运行,远程运行则无法收集到对应的主机信息。

  2. 触发条件貌似是单一的,无法选择多个,也算是一个明显的弊端。

附录:

https://www.percona.com/doc/percona-toolkit/LATEST/pt-stalk.html
https://www.percona.com/doc/percona-toolkit/LATEST/pt-sift.html
https://www.orczhou.com/index.php/2012/06/mysql-troubleshooting-with-pt-stakl/

VC中sqlite的使用 在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示 立即下载

相关推荐

评分卡建模学习(一)————数据预处理part.3

目录六、数据处理的思路及代码(一)对缺失值的处理:在我这个数据预处理的part.1板块(二)对异常值的处理:在我这个数据预处理的part.2板块(三)数据归一化、标准化:在我这个数据预处理的part.2板块(四)非结构化数据转变+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++———————————————————————————————————————————++++++++++++++++++++++++++

Morven_dai的博客 898

mysql监控利器-pt-stalk

OS层面的CPU、io、内存、磁盘、网盘等信息;mysql层面的行锁等待、会话连接、主从复制,状态参数信息。pt-stalk工具有丰富的监控项及特有的触发式监控机制,非常适合没有部署监控系统,但为了临时排查解决MySQL问题的环境;但是,pt-stalk适合在MySQL本地环境运行,远程运行则无法收集到对应的主机信息,触发条件貌似是单一的,无法选择多个,也算是一个明显的弊端。

FengXiaoYu___的博客 626

国科大——形式语言与自动机理论(0812课程)——作业

此次作业题考察,包括但不限于有限自动机、无限自动机、正则文法、正则表达式以及正则语言的性质,题考查下推自动机相关的知识,题考查图灵机相关的知识。此课程建议本科学习过课程的同学选修,成绩占比:考试100%。此课程虽然留有作业,但可做也可不做,且不考勤。

qq_54145399的博客 706

mysql间歇性_使用pt-stalk诊断MySQL的间歇性问题

在MySQL服务器出现短暂(5~30秒)的性能波动的时候,一般的性能监控工具都很难抓住故障现场,也就很难收集对应较细粒度的诊断信息。另外,如果这种波动出现的频率很低,例如几天才一次,我们也很难人为的抓住现场,收集数据。这正是pt-stalk所解决的问题。pt-stalk是Percona-Toolkit的一部分(其前身是Aspersa的一部分)。安装Percona-Toolkit后,可以通过man ...

weixin_36246453的博客 182

手把手教你学Simulink——基于Simulink的PR(比例谐振)控制器在单相整流中的应用

本文详细介绍了基于Simulink的PR(比例谐振)控制器在单相整流系统中的应用。通过与传统PI控制器的对比,阐述了PR控制器在交流信号跟踪中的优势:可实现50Hz正弦电流的无静差跟踪,THD低于2%,功率因数接近1。文章从PR控制器原理出发,提供了Simulink建模的具体步骤,包括主电路搭建、电压外环设计、PR控制器实现方法(推荐MATLAB Function方式)以及SPWM调制。通过仿真验证了PR控制在稳态和负载突变情况下的优越性能,并探讨了工程实践中的电网频率自适应、多谐振PR等关键技术。该教程为

MHD0815的博客 123

第14.1章 高翔博士2025年11月最新开源框架Lightning-LM源码学习解读(一):激光-IMU定位+建图算法各模块简介

Lightning-LM:高效激光SLAM定位系统 该框架基于模块化设计,通过激光-IMU融合实现快速建图与定位,核心特点包括: 极速性能:纯CPU运行(建图1.2核/定位0.8核) 模块化架构:包含激光里程计(LIO)、地图管理、回环检测等独立模块 动态场景支持:地图分块加载、动静态图层分离 多模式适配:支持ROS2环境下的在线/离线运行 关键模块包括前端里程计(core/lio)、2D/3D地图转换(core/g2p5)、轻量优化库(core/miao)等,通过系统控制器(core/system)协调流

行知SLAM 2438

pt-stalk

pt-stalk 1. 概述 在MySQL服务器出现短暂(5~30秒)的性能波动的时候,一般的性能监控工具都很难抓住故障现场,也就很难收集对应较细粒度的诊断信息。另外,如果这种波动出现的频率很低,例如几天才一次,我们也很难人为的抓住现场,收集数据。这正是pt-stalk所解决的问题。 2. 收集的性能和状态数据 让pt-stalk后台运行(--daemonize),并监视SHOW...

weixin_30784141的博客 200

【ArcGIS微课1000例】0145:如何按照自定义形状裁剪数据框?

使用绘图 工具条上的新建圆工具 可创建一个椭圆,使其包含要在该数据框中显示的数据范围。. 在基础工具工具条上单击选择元素工具 ,然后选择圆形。. 在内容列表中右键单击要裁剪的数据框,然后单击属性。. 单击裁剪选项下拉菜单,然后选择裁剪至形状。. 单击数据框属性 对话框中的数据框选项卡。还可以更改裁剪形状轮廓的边框选项。打开软件,添加配套实验数据包中。修改椭圆的属性,使其透明。. 单击所选图形的轮廓。. 单击指定形状按钮。

智慧空间实验室 953

Percona-Toolkit系列(27) --- pt-stalk

pt-stalk pt-stalk:官方地址 说明 用途:当MySQL发生故障时收集 语法: pt-stalk [OPTIONS] pt-stalk等待触发条件发生,然后收集数据来帮助诊断问题。该工具被设计为作为具有根特权的守护进程运行,这样您就可以诊断不能直接观察到的间歇性问题。还可以使用它来执行自定义命令,或者在不等待触发器发生的情况下根据需要收集数据。 对于偶尔发生的间接性的性能问题,可以...

Expec-乐的博客 706

逆向分析-SeparationPreview.aip-分色预览-结构分析(一)-x64dbg条件日志打印-命令表达式-PS脚本

从功能上分析,仅显示使用的专色这个功能,并没有触发插件接口。使用X64dbg加载illustrator进程,切换到句柄窗口,在窗口过程中,右键刷新获取界面。在x64dbg中,在UI中可以输入一些条件表达式,能够计算出对应的值,并打印在日志中。常用的,如果非暂停,输出第一个参数。参数二是utf16的指针,utf16@字符串地址,这里的字符串地址为[[ebp-108]]参数一是utf8的,utf8@字符串地址,这里的字符串地址为[ebp-28]从界面上分析,一个颜色列表,及仅显示专色的多选框组成。

插件开发 644

使用Python实现卷积神经网络(CNN)

卷积神经网络是一种专门用于处理具有网格状拓扑结构数据(如图像、声音)的深度学习模型。CNN的核心组件是卷积层和池化层,它们能够有效地从图像中提取特征并实现空间不变性,使得模型能够对图像中的物体进行识别和分类。我们定义一个简单的卷积神经网络模型,包括卷积层、池化层和全连接层。return x# 创建模型实例我们选择交叉熵损失函数作为分类任务的损失函数,并使用随机梯度下降(SGD)作为优化器。

Echo_Wish 4489

用pt-stalk定位MySQL短暂的性能问题

【背景】 MySQL出现短暂的3-30秒的性能问题,一般的监控工具较难抓到现场,很难准确定位问题原因。 对于这类需求,我们日常的MySQL分析工具都有些不足的地方: 1、 性能监控工具,目前粒度是分钟级,无法反应秒级的性能波动; 2、 MySQL Performance_schema工具采集是3秒落地10000行记录,对于QPS大于3000以上的服务器采集会丢失数据; Performance_schema数据通常用来分析语句级的性能问题,比如CPU高消耗,扫描行数等语句问题,对于系统内部mutex

沨沙的博客 289

Vue3 - Element Plus 下拉选择器 el-select 覆盖修改 placeholder样式,解决覆盖不生效问题(支持修改文字颜色、文字大小、选择器边框、hover效果、宽高等任意样式

vue3,element-plus,el-select,下拉选择器,下拉选择框,Select选择器,deep覆盖无效怎么办,怎么修改placeholder文字颜色,选择器select修改边框样式,修改文字大小,elementPlus选择器如何覆盖hover效果,使用deep改不了样式,修改边框颜色,select去掉边框,vue3+elementPlus中select选择器如何修改placeholder文字样式,修改el-select样式,select选择器样式覆盖不了咋办,el-select如何覆盖原样式,

🏆 前端领域优质创作者 1万+

mysql pt监控_技术分享 | MySQL 监控利器之 Pt-Stalk

一、概述之前在社区发了一篇故障分析 | 有效解决 MySQL 行锁等待超时问题文档,主要介绍了下行锁超时的监控方法,下方评论中有人提到了 pt-stalk 工具也可以监控行锁超时,因为个人没怎么用过这个工具,所以下意识的就去 google 了一下。因为没找到有介绍具体监控输出的文档,就以为这个工具没法监控行锁等待,最后果断被打脸了。以上是个小插曲,个人在本地测试了下 pt-stalk 的监控输出后...

weixin_30496435的博客 327

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

mysql pt_技术分享 | MySQL 监控利器之 Pt-Stalk

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、概述之前在社区发了一篇故障分析 | 有效解决 MySQL 行锁等待超时问题文档,主要介绍了下行锁超时的监控方法,下方评论中有人提到了 pt-stalk 工具也可以监控行锁超时,因为个人没怎么用过这个工具,所以下意识的就去 google 了一下。因为没找到有介绍具体监控输出的文档,就以为...

weixin_29974217的博客 156

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

爱可生 mysql监控_技术分享 | MySQL 监控利器之 Pt-Stalk

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、概述之前在社区发了一篇【有效解决 MySQL 行锁等待超时问题】文档,主要介绍了下行锁超时的监控方法,下方评论中有人提到了 pt-stalk 工具也可以监控行锁超时,因为个人没怎么用过这个工具,所以下意识的就去 google 了一下。因为没找到有介绍具体监控输出的文档,就以为这个工具没...

weixin_42144086的博客 436

常用监控项_技术分享 | MySQL 监控利器之 Pt-Stalk

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、概述之前在社区发了一篇【有效解决 MySQL 行锁等待超时问题】文档,主要介绍了下行锁超时的监控方法,下方评论中有人提到了 pt-stalk 工具也可以监控行锁超时,因为个人没怎么用过这个工具,所以下意识的就去 google 了一下。因为没找到有介绍具体监控输出的文档,就以为这个工具没...

weixin_39895486的博客 221

pt5 mysql预处理_技术分享 | MySQL 监控利器之 Pt-Stalk

一、概述之前在社区发了一篇【有效解决 MySQL 行锁等待超时问题】文档,主要介绍了下行锁超时的监控方法,下方评论中有人提到了 pt-stalk 工具也可以监控行锁超时,因为个人没怎么用过这个工具,所以下意识的就去 google 了一下。因为没找到有介绍具体监控输出的文档,就以为这个工具没法监控行锁等待,最后果断被打脸了~~~以上是个小插曲,个人在本地测试了下 pt-stalk 的监控输出后,发现...

weixin_29124423的博客 116

mysql5.0支持pt_技术分享 | MySQL 监控利器之 Pt-Stalk

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、概述之前在社区发了一篇故障分析 | 有效解决 MySQL 行锁等待超时问题文档,主要介绍了下行锁超时的监控方法,下方评论中有人提到了 pt-stalk 工具也可以监控行锁超时,因为个人没怎么用过这个工具,所以下意识的就去 google 了一下。因为没找到有介绍具体监控输出的文档,就以为...

weixin_33274610的博客 159

mysql服务等待应答超时_技术分享 | MySQL 监控利器之 Pt-Stalk

作者:xuty一、概述之前在社区发了一篇【有效解决 MySQL 行锁等待超时问题】文档,主要介绍了下行锁超时的监控方法,下方评论中有人提到了 pt-stalk 工具也可以监控行锁超时,因为个人没怎么用过这个工具,所以下意识的就去 google 了一下。因为没找到有介绍具体监控输出的文档,就以为这个工具没法监控行锁等待,最后果断被打脸了~~~以上是个小插曲,个人在本地测试了下 pt-stalk 的监...

weixin_39636857的博客 179

爱可生 mysql监控_MySQL 监控利器之 Pt-Stalk

一、概述之前在社区发了一篇【有效解决 MySQL 行锁等待超时问题】文档,主要介绍了下行锁超时的监控方法,下方评论中有人提到了 pt-stalk 工具也可以监控行锁超时,因为个人没怎么用过这个工具,所以下意识的就去 google 了一下。因为没找到有介绍具体监控输出的文档,就以为这个工具没法监控行锁等待,最后果断被打脸了~~~以上是个小插曲,个人在本地测试了下 pt-stalk 的监控输出后,发现...

weixin_34665627的博客 143

mysql 如果条件一不满足 使用条件二_技术分享 | MySQL 监控利器之 PtStalk

作者:xuty本文来源:原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。一、概述之前在社区发了一篇【有效解决 MySQL 行锁等待超时问题】文档,主要介绍了下行锁超时的监控方法,下方评论中有人提到了 pt-stalk 工具也可以监控行锁超时,因为个人没怎么用过这个工具,所以下意识的就去 google 了一下。因为没找到有介绍具体监控输出的文档,就以为...

weixin_39574246的博客 319

mysql .frm文件丢失_实例中所有frm文件消失的幕后黑手

今天遇到MySQL实例中frm文件无缘无故消失,而ibd文件仍然存在。晚上终于把问题定位到,罪魁祸首是pt-stalk. 长话短说,使用pt-stalk时,有个选项很重要,一定要注意,dest 千万不要指定为 MySQL的数据目录,或是其它重要的目录,因为指定的这个目录中的文件今天遇到MySQL实例中frm文件无缘无故消失,而ibd文件仍然存在。晚上终于把问题定位到,罪魁祸首是pt-stalk.长...

weixin_36269385的博客 846

innodb保护行锁对象的mutext争用导致LINUX内核态CPU使用率高诊断

MSYQL 版本: mysql> select version()\G *************************** 1. row **********************...

congjiong3047的博客 461

mysql 超长记录_谁记录了mysql error log中的超长信息

【问题】最近查看MySQL的error log文件时,发现有很多服务器的文件中有大量的如下日志,内容很长(大小在200K左右),从记录的内容看,并没有明显的异常信息。有一台测试服务器也有类似的问题,为什么会记录这些信息,是谁记录的这些信息,分析的过程比较周折。Status information:Current dir:Running threads: 2452 Stack size: 2621...

weixin_42520909的博客 308

高性能Mysql笔记(三)

服务器性能剖析 3.1 性能优化简介 我们将性能定义为完成某件任务所需要的时间度量,换句话说,性能即响应时间。数据库服务器的性能用查询的响应时间来度量,单位是每个查询花费的时间。 3.1.1 通过性能剖析进行优化 性能剖析是测量和分析时间花费在哪里的主要方法。性能剖析一般有两个步骤:测量任务所花费的时间,然后对结果进行统计和排序,将重要的任务排到前面。 性能剖析工具的工作方式基本相同。在任务开始时启动计时器,在任务结束时停止计时器,然后用结束时间减去启动时间得到响应时间。 3.1.2 理解性能剖析 Mysq

qq_37617419的博客 2403
上一篇: 新特性解读 | MySQL 8 的备份工具该如何选择?
下一篇: 第02期:Prometheus 数据采集(一)
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值