最基本的是mysql自带的mysqlslowdump
用起来很简单:
mysqldumpslow -s c -t 20 host-slow.log
参数:
1. -s,排序,c,t,l,r以及ac,at,al,ar分别是按照query次数,时间,lock时间,返回记录排序。加a就是倒序。
2. -t,top n,跟上数字就是算出top多少条
3. -g,跟正则表达式。
先进一点的是mysqlsla,也是一个perl脚本,
网址:http://hackmysql.com/mysqlsla
同时这个网站也有其他一些工具,看起来都不错。
这个需要小安装一下:
tar xvfz mysqlsla-2.03.tar.gz cd mysqlsla-2.03 perl Makefile.PL make make install
注意需要perl的支持!
#yum install perl #yum install perl-Time-HiRes
后者是因为第一次运行的时候说2095行报错,于是看了一下,2095行是
use Time::HiRes qw(gettimeofday tv_interval);
安装下就好了。不复杂。
运行也比较简单:
— Slow log: mysqlsla -lt slow slow.log
— General log: mysqlsla -lt general general.log
— Binary log: mysqlbinlog bin.log | mysqlsla -lt binary
mysqlsla -lt slow /data/database/slow.log
注意lt=log type,他其实也可以分析mysql的其他日志类型的。
mysqlsla 优点是分析结果很清晰,推荐使用!
最后再送一篇文章《详解MySQL中SlowLog的实际配置》,该文中将讲解到配合 ssis 和 proc 每天监控多台服务器。也适用于大规模的MySQL,下次写监控的点和面操作的问题。
发表回复