使用pt-stalk诊断MySQL问题

来源:互联网 发布:数据库中的模式 编辑:程序博客网 时间:2024/04/30 16:43

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

pt-stalk是Percona-Toolkit的一部分(其前身是Aspersa的一部分)。安装Percona-Toolkit后,可以通过man pt-stalk了解如何使用该工具,本文的介绍是man pt-stalk的一个子集,强烈建议直接阅读man pt-stalk。额外的,本文将提供pt-stalk示例命令可供参考。

1. 使用pt-stalk
pt-stalk --collect-tcpdump --function status \
--variable Threads_connected --threshold 2500 \
--daemonize -- --user=root --password=YOURPASSWORD

上面的命令表示,让pt-stalk后台运行(--daemonize),并监视SHOW GLOBAL STATUS中的Threads_connected状态值,如果该值超过2500,则触发收集主机和MySQL的性能、状态信息。pt-stalk会每隔一秒检查一次状态值,如果连续5次满足触发条件,则开始收集。

--collect-tcpdump表示除了收集基本信息外,还将额外使用tcpdump收集当时的网络包,类似的还可以使用--collect-gdb等。

2. pt-stalk如何连接MySQL

在上面的命令中参数,"-- --user=root --password=YOURPASSWORD"表示,将使用"--"后面的所有参数用于mysql和mysqladmin命令,所以这里确保你给出正确的用户名和密码。下面是man pt-stalk中给出的语法:

SYNOPSIS
Usage: pt-stalk [OPTIONS] [-- MYSQL OPTIONS]

看到前面的[OPTIONS]是pt-stalk使用的参数,[-- MYSQL OPTIONS]是mysql和mysqladmin使用的参数。

3. pt-stalk的工作状态

pt-stalk是一个后台程序,默认我们可以通过文件/var/log/pt-stalk.log,查看pt-stalk的运行状态:

tail -f /var/log/pt-stalk.log
2012_06_05_00_00_35 Check results: Threads_connected=1641, matched=no
2012_06_05_00_00_36 Check results: Threads_connected=1641, matched=no
2012_06_05_00_00_37 Check results: Threads_connected=1641, matched=no
2012_06_05_00_00_38 Check results: Threads_connected=1641, matched=no
2012_06_05_00_00_39 Check results: Threads_connected=1641, matched=no
2012_06_05_00_00_40 Check results: Threads_connected=1641, matched=no
2012_06_05_00_00_41 Check results: Threads_connected=1641, matched=no

你还可以通过参数--log指定一个你希望的log目录和文件。

4. pt-stalk收集的性能和状态数据

默认pt-stalk将收集的数据放在目录/var/lib/pt-stalk下,你可以使用参数--dest指定你希望的目录。下面是一个pt-stalk触发收集后的数据文件:

pt-stalk数据

这些数据都是原始数据,我们可以根据这些来分析当时MySQL或者主机是否有异常。

5. pt-stalk的触发条件

在上面的示例中触发参数是:"--function status --variable Threads_connected --threshold 2500",表示MySQL状态值Threads_connected超过2500时触发数据收集。常用的触发条件还可以使用Threads_running等。

另外还可以使用SHOW PROCESSLIST的中的结果触发,例如"--function processlist --variable State --match statistics --threshold 10"表示,show processlist中State列的值为statistics的线程数超过10则触发收集。

6. 一些其他有用的参数

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

--run-time:触发收集后,该参数指定收集多长时间的数据。默认是30秒

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

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

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

参考文献:man pt-stalk;man percona-toolkit

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 坐高铁安检时怕把包包弄坏了怎么办 很贵的包包高铁安检怎么办 如果过高铁安检东西被扣留怎么办 邻居家小孩把我家东西弄坏了怎么办 邻居早上6点放音乐扰民怎么办 隔壁楼邻居天天放音乐很吵怎么办 发现老公在卧室安了摄像头怎么办 憋的尿又没有厕所的时候怎么办 一岁宝宝拉屎总是拉出血怎么办 孩子鼻窦炎鼻子堵有白色鼻涕怎么办 家里阳台上老是有蝙蝠趴着怎么办 空调太冷在空调房里该怎么办 分手了怎么办不要挽回要重新吸引 过敏体质没打疫苗的孩子入学怎么办 遇到不认识的小姐姐问我问题怎么办 小孩孑脖子洛忱了痛怎么办 挤奶把乳腺挤肿了不出奶怎么办 遇到好兄弟在背后捅刀子怎么办 面对出轨还不想离婚的老公怎么办 法院执行局把案划错了不承认怎么办 手机nfc功能被手机壳挡住怎么办 飞信短信登录验证码达到上限怎么办 手机自带短信软件没了怎么办 老婆出轨孩子又3个不知道怎么办 骑电动车摔跤小脚趾疼有点肿怎么办 第一次太疼了有心理阴影了怎么办 天梭机械表调了时间忽然慢怎么办 支付宝信用住到酒店没房间怎么办 拳头打在硬上骨头肿了怎么办 领导决策出现了失误你该怎么办 我的直销团队走到瓶颈了怎么办 孕妇8个月便秘大便带血怎么办 爱他美金装冲泡有泡沫怎么办 做雅思听力时理解不了原文怎么办 英国读语言班不想读研了怎么办 英国读研本科学位不够分怎么办 英国华威大学读研没分到宿舍怎么办 英国留学申请大学成绩没通过怎么办 很想上专升本但是专科挂科怎么办 英国学校申请的gpa太低了怎么办 博士面试通过后导师不签名怎么办