=6<@
test
46=@
UfN
D6>@
show tables
46?@
S6@@
select * from table_myisam"
UPs
46A@
?
从中可以看出tcpdump可以暴露出mysql客户端连接mysql数据库的所有包的信息。Tcpdump可以做审计,把下游客户端对mysql数据库所做的所有操作都记录统计汇总出来有助于我们分析问题,tcpdump产生的信息比较多,大家可以自己做扩展过滤出自己需要的信息记录。
?
9,perf工具
直接yum安装即可:yum install perf –y
Perf是一个包含22种子工具的工具集,以下是最常用的5种:
perf list:显示性能事件
perf top:实时显示性能统计信息
大多数是在内核层面
perf stat:分析整体性能
perf record:分析一段时间内的性能
perf report:根据record记录,统计报告
10,pt-stalk
安装:
tar -xvf percona-toolkit_2.2.13.tar.gz
cdpercona-toolkit-2.2.13
perl Makefile.PL
make
make test
make install
?
使用
pt-stalk--collect-tcpdump --function status --variable Threads_connected --threshold 2500--daemonize --user=root --host=127.0.0.1 --port=3306
主要是用来抓现场的,比如:MySQL Server 性能波动出现的频率很低、例如、几天一次,MySQL Server 性能波动出现的机率很快、例如、几秒闪过,我想输出一些信息,触发这些阈值的时候,就打印一下,那我们有了抓住这个现场之后,我们就可以知道到底是做了什么操作导致这些性能波动的尖刀出现了。
?
--daemonize:在后台运行。
pt-stalk --collect-tcpdump --functionstatus --variable handler_connected --threshold 3 --user=root --host=127.0.0.1--port=3306
[root@data01 percona-toolkit-2.2.13]# pt-stalk --collect-tcpdump --function status --variable handler_connected --threshold 3 --user=root --host=127.0.0.1 --port=3306
2015_04_04_19_01_21 Starting /usr/local/bin/pt-stalk --function=status --variable=handler_connected --threshold=3 --match= --cycles=5 --interval=1 --iterations= --run-time=30 --sleep=300 --dest=/var/lib/pt-stalk --prefix= --notify-by-email= --log=/var/log/pt-stalk.log --pid=/var/run/pt-stalk.pid --plugin=
2015_04_04_19_01_21 Detected value is empty; something failed? Trigger exit status: 0
2015_04_04_19_01_22 Detected value is empty; something failed? Trigger exit status: 0
2015_04_04_19_01_23 Detected value is empty; something failed? Trigger exit status: 0
2015_04_04_19_01_24 Detected value is empty; something failed? Trigger exit status: 0
2015_04_04_19_01_25 Detected value is empty; something failed? Trigger exit status: 0
2015_04_04_19_01_26 Detected value is empty; something failed? Trigger exit status: 0
2015_04_04_19_01_27 Detected value is empty; something failed? Trigger exit status: 0
2015_04_04_19_01_28 Detected value is empty; something failed? Trigger exit status: 0
2015_04_04_19_01_29 Detected value is empty; something failed? Trigger exit status: 0
当你发现mysql服务器性能有波动,遇到性能问题遇到偶发事件了,但是你又无法查出这段时间mysql做了什么,你可以使用pt-stalk来抓取这些现场的所有行为,来帮助你分析查询。
11,orzdba
先需要安装svn客户端以及tcprstat,yum安装即可:yum install -y svn;yum install -y tcprstat;
然后下载orzdba包:
cd trunk/
chmod a+x orzdba
大概包括Sys、mysql、innodb、lazy 4个方面的,是一个集大成者,是淘宝的一个工程师写的,它把系统的,我们需要记住lazy就足够用了,用lazy就基本可以满足我们大部分的应用需要了。Lazy命令如下:
./orzdba -lazy -rt -S/usr/local/mysql/mysql.sock
-------- -----load-avg---- ---cpu-usage--- ---swap--- -QPS- -TPS- -Hit%- --------tcprstat(us)--------
time | 1m 5m 15m |usr sys idl iow| si so| ins upd del sel iud| lor hit| count avg 95-avg 99-avg|
21:00:17| 0.32 0.28 0.37| 0 0 99 0| 0 0| 0 0 0 0 0| 0 100.00| 0 0 0 0|
21:00:18| 0.32 0.28 0.37| 2 24 43 30| 0 128| 903 0 0 1 903| 4774 100.00| 0 0 0 0|
21:00:19| 0.32 0.28 0.37| 2 21 49 27| 0 0| 742 0 0 1 742| 3922 100.00| 0 0 0 0|
21:00:20| 0.32 0.28 0.37| 3 28 53 17| 0 0| 1108 0 0 1 1108| 5861 100.00| 0 0 0 0|
21:00:21| 0.32 0.28 0.37| 3 29 52 17| 0 0| 1037 0 0 1 1037| 5492 100.00| 0 0 0 0|
21:00:22| 0.29 0.28 0.37| 3 29 52 16| 0 0| 1003 0 0 1 1003| 5