文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用pt-stalk分析MySQL的性能波动

2024-04-02 19:55

关注

小编给大家分享一下如何使用pt-stalk分析MySQL的性能波动,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

简介

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

参数

–function:设置触发条件,包括status、processlist、自定义脚本,详细见触发条件部分。

–dest:设置collect信息的存储目录,默认/var/lib/pt-stalk/。

另外设置–dest /u01/mysql选项到mysql目录之后,pt-stalk在清理超过期限的日志时,会暴力的将该目录下所有修改时间超过一定日期的文件全部删掉,

因此在设置dest目录时必须慎重(如果设置最好是一个独立的目录,而不是跟mysql或者其他设置在同一个目录)。–dest默认值是

查看pt-stalk的源码:

            # Delete collect files which more than --retention-time days old. find "$dir" -warn -type f -mtime +$retention_time -exec rm -f '{}' \;

–iterations:该参数指定pt-stalk在收集几次故障现场后就退出。默认pt-stalk会一直运行。

–run-time:触发收集后,该参数指定收集多长时间的数据。默认是30秒,比如show processlist会连续收集30次。

–sleep:为防止一直触发收集数据,该参数指定在某次触发后,必须sleep一段时候才继续观察并触发收集。默认是300秒

–interval:默认情况pt-stalk会每隔一秒检查一次状态数据,判断是否需要触发收集。该参数指定间隔时间,默认是1秒。

–cycles:默认情况pt-stalk只有连续观察到五次状态值满足触发条件时,才触发收集。该参数控制,需要连续几次满足条件,收集被触发,默认是5次。

–verbose:设置log的输出级别,默认是2;第一次运行可以设置为3,方便观察情况。

LEVEL PRINTS

===== =====================================

0     Errors

1     Warnings

2     Matching triggers and collection info

3     Non-matching triggers

–plugin:和–function参数类似,可以指定一个包含before_collect、after_collect等函数的shell脚本。

pt-stalk的触发条件

三种触发条件,通过参数function设置:

  1. status

    –function status –variable Threads_connected –threshold 2500,表示MySQL状态值Threads_connected超过2500时触发数据收集。常用的触发条件还可以使用Threads_running等。

  2. processlist
    –function processlist –variable State –match statistics –threshold 10,表示,show processlist中State列的值为statistics的线程数超过10则触发收集。

  3. 自定义脚本
    包含 trg_plugin函数的shell脚本, trg_plugin 函数必须返回一个int值,比如下面的脚本,因为slow log的status是一个累加值,不能分析差值,因此写小脚本来获取差值,对slow突然出现的尖刺进行分析。

function trg_plugin(){        current_slow=`mysql -uroot -pxxx -P5002 -S/opt/tmp/mysql5002.sock -e"show global status like 'Slow_queries'" -B -N|awk '{print $2}'`        current_timestamp=`date '+%s'`        #when first execute,the last_timestamp is empty        if [ ! -e Slow_queries ];then            echo "$current_timestamp $current_slow">Slow_queries            echo "0"            exit 0        fi        last_timestamp=`cat Slow_queries|awk '{print $1}'`        last_slow=`cat Slow_queries|awk '{print $2}'`        echo "$current_timestamp $current_slow">Slow_queries        let diff_timestamp=$current_timestamp-$last_timestamp        let diff_slow=$current_slow-$last_slow        #echo "$diff_timestamp $diff_slow"        if [ $diff_timestamp -gt 11 ];then                echo "0"        else                echo $diff_slow        fi }

实际例子

pt-stalk --daemonize --function=slow_log_status.sh --variable=my_custemed_condition --cycles=1 --threshold=2 --interval=10 --socket=/opt/tmp/mysql5002.sock --verbose=3

收集结果

可以看到收集的信息非常的全面,包括大量的系统状态(IO、CPU、网卡)等以及大量MySQL信息(processlist、innodb status、variables等)

以上是“如何使用pt-stalk分析MySQL的性能波动”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯