加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL中的异常信息诊断

发布时间:2016-10-18 12:43:52 所属栏目:MySql教程 来源:站长网
导读:今天要介绍的是Percona中的pt-stalk工具。 有些问题间歇性的发生,监控信息也许根本来不及采集信息,MySQL的锁定或活动的高峰通常没有留下任何数据来分析。这个是pt-stalk存在的意义, Pt-stalk 会监测一个触发条件,然后收集相关信息,该工具会将信息写入

今天要介绍的是Percona中的pt-stalk工具。

有些问题间歇性的发生,监控信息也许根本来不及采集信息,MySQL的锁定或活动的高峰通常没有留下任何数据来分析。这个是pt-stalk存在的意义,

Pt-stalk 会监测一个触发条件,然后收集相关信息,该工具会将信息写入到 指定的日志文件,默认以时间格式区分。对于show global status中的信息,往往用Threads_running

语法:pt-stalk [OPTIONS] [-- MYSQL OPTIONS]

使用选项:

--collect : default:yes 收集系统信息.

--collect-gdb  收集GDB的跟踪信息。可能会是MySQL处于冻结的状态。(在线上的话,慎用)

--collect-oprofile  收集oprofile信息,通过打开一个oprofile  session实现。

--collect-strace  通过附加一个 strace来收集server信息。可能运行很慢, 这个不能和--collect-gdb 同时使用。

--collect-tcpdump 抓取MySQL SERVER 监听接口的数据包。 可以使用 pt-query-digest进行解码。

--config‘’,‘’ 逗号分隔的选项,如果使用的话,必须放在第一位.

--cycles  =  默认为5,在触发器 在被触发几次后 再开始收集信息。

--daemonize  作为一个守护进程运行

--dest  检测数据存放的位置。 默认为 /var/lib/pt-stalk

--disk-bytes-free 默认100m ,如果磁盘空间小于100M的话,就不会收集信息。 如果 在–dest中有以前收集的数据信息,那么这次收集就会根据上次的结果大小来判断自己此次收集数据的大小

--disk-pct-free :默认是5 ,当磁盘空间小于5%时,就不会收集信息。

本栏目更多精彩内容:http://www.bianceng.cn/database/MySQL/

--function 指定触发器的数据源The default value watches SHOW GLOBAL STATUS,当然也可以监控processlist 这个 , 后面可以跟选项 –variables  和–threshold

使用 status 时,指定触发器的数据来源于SHOW GLOBAL STATUS,  --variables  来定义哪个staus值来出发trigger。

如: --function status --variable Threads_connected --threshold 2500

Processlist 触发器的数据来源于: show full processlist    这个时候应该使用 –variable  和 –match

如:--function  processlist  --variable Status  --match statistics –threshold  10

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

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

--retention-time 收集信息文件 保留的天数,默认30天

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

--threshold  默认是25  触发的阀值

--variable  默认为 Threads_running

--run-time:触发收集后,该参数指定收集多长时间的数据。默认是30秒(大部分情况下不需要修改)

举例:

为方便测试,在测试机上如下:

     /usr/local/bin/pt-stalk --function status --variable Threads_running --threshold 1 --cycles=1 --daemonize -- --socket=/tmp/mysql.sock 

pt-stalk作为 守护进程运行,当Threads_running 为1的时候触发触发器,开始收集,保存位置为/var/lib/pt-stalk

日志信息: /var/log/pt-stalk.log

 2012_08_29_20_27_03 Check results: Threads_running=1, matched=no, cycles_true=0 2012_08_29_20_27_04 Check results: Threads_running=1, matched=no, cycles_true=0 2012_08_29_20_27_05 Check results: Threads_running=1, matched=no, cycles_true=0 2012_08_29_20_27_06 Check results: Threads_running=1, matched=no, cycles_true=0 2012_08_29_20_27_07 Check results: Threads_running=1, matched=no, cycles_true=0 2012_08_29_20_27_08 Check results: Threads_running=1, matched=no, cycles_true=0 2012_08_29_20_27_09 Check results: Threads_running=1, matched=no, cycles_true=0 




收集的日志信息:

2012_08_29_20_34_54-df 2012_08_29_20_34_59-iostat-overall 2012_08_29_20_35_03-mpstat-overall 2012_08_29_20_35_07-output 2012_08_29_20_35_11-slabinfo 2012_08_29_20_35_15-vmstat-overall 2012_08_29_20_34_54-disk-space 2012_08_29_20_34_59-lock-waits 2012_08_29_20_35_03-mutex-status1 2012_08_29_20_35_07-pmap 2012_08_29_20_35_11-sysctl 2012_08_29_20_35_17-df 2012_08_29_20_34_54-diskstats 2012_08_29_20_34_59-log_error 2012_08_29_20_35_03-mysqladmin 2012_08_29_20_35_07-processlist 2012_08_29_20_35_11-top 2012_08_29_20_35_17-disk-space 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读