MySQL性能医生:OrzDBA

MySQL性能医生:OrzDBA

[root@even ~]# svn co http://code.taobao.org/svn/orzdba/trunk
A    trunk/orzdba_rt_depend_perl_module.tar.gz
A    trunk/orzdba
A    trunk/orzdba工具使用说明.pdf
取出版本 4。

[root@even trunk]# chmod +x orzdba

需要在代码160行左右配置MySQL的相关验证信息,如username,password,host,port,sock等

㈠ 查看MySQL响应时间(rt)

先安装tcprstat
# wget http://github.com/downloads/Lowercases/tcprstat/tcprstat-static.v0.3.1.x86_64
# ln -sf /root/tcprstat-static.v0.3.1.x86_64 /usr/bin/tcprstat
在源码161行左右把 /usr/bin/tcprstat 加入默认读取的位置

再解压orzdba_rt_depend_perl_module.tar.gz,安装rt所依赖的perl模块

由于安装后运行tcprstat需要root用户,或者sudo进行,可以通过如下命令来避免:

$sudo chown root:root /usr/bin/tcprstat

 

$sudo chmod u+s /usr/bin/tcprstat

 

$ll /usr/bin/tcprstat

 

-rwsr-xr-x 1 root root 1183465 May 28 15:38 /usr/bin/tcprstat

默认工具读取tcprstat的代码如下:

$grep -n ‘my $TCPRSTAT’ orzdba

 

166:my $TCPRSTAT = “/usr/bin/tcprstat –no-header -t 1 -n 0 -p $port”;

不同的路径可以自行修改。

(2)需要安装Perl的File::Lockfile模块

File::Lockfile模块同时要依赖Module-Build/version/Class-Data-Inheritable这3个模块,可以通过下面方式进行安装:

安装version模块:

$wget http://search.cpan.org/CPAN/authors/id/J/JP/JPEACOCK/version-0.99.tar.gz

 

$tar -zxvf version-0.99.tar.gz

 

$cd version-0.99

 

$perl Makefile.PL

 

$make

 

$make test

 

$sudo make install

安装Class-Data-Inheritable模块:

$wget http://search.cpan.org/CPAN/authors/id/T/TM/TMTM/Class-Data-Inheritable-0.08.tar.gz

 

$tar -zxvf Class-Data-Inheritable-0.08.tar.gz

 

$cd Class-Data-Inheritable-0.08

 

$perl Makefile.PL

 

$make

 

$make test

 

$sudo make install

安装Module-Build模块:

$wget http://search.cpan.org/CPAN/authors/id/K/KW/KWILLIAMS/Module-Build-0.31.tar.gz

 

$tar -zxvf Module-Build-0.31.tar.gz

 

$cd Module-Build-0.31

 

$perl Build.PL

 

$./Build

 

$./Build test

 

$sudo ./Build install

安装安装File::Lockfile模块:

$wget http://search.cpan.org/CPAN/authors/id/G/GL/GLORYBOX/File-Lockfile-v1.0.5.tar.gz

 

$tar -zxvf File-Lockfile-v1.0.5.tar.gz

 

$cd File-Lockfile-v1.0.5

 

$perl Build.PL

 

$perl ./Build

 

$perl ./Build test

 

$sudo perl ./Build install

可以通过如下脚本,检查安装了哪些perl模块的脚本:

$cat check_module.pl

 

#!/usr/bin/perl

 

use ExtUtils::Installed;

 

my $inst = ExtUtils::Installed->new();

 

print join “\n”,$inst->modules();

 

print “\n”;

4、其他

(1)MySQL相关参数配置

-P,–port           Port number to use for mysql connection(default 3306).

 

-S,–socket         Socket file to use for mysql connection.

用于指定端口或者socket。

如果需要MYSQL的其他参数要添加,直接改代码:

$grep -n -A1 ‘my $MYSQL’ orzdba

 

166:my $MYSQL    = qq{mysql -s –skip-column-names -uroot -P$port };

 

167-$MYSQL      .= qq{-S$socket } if defined $socket;

(2)控制输出间隔和次数,以及是否输出颜色。

-h,–help           Print Help Info.

 

-i,–interval       Time(second) Interval.

 

-C,–count          Times.

 

-t,–time           Print The Current Time.

 

-nocolor            Print NO Color.

(3)日志输出

-L,–logfile        Print to Logfile.

 

-logfile_by_day     One day a logfile,the suffix of logfile is ‘yyyy-mm-dd’;  and is valid with -L.

用于将数据输出到日志文件-L后面带输出的日志文件,另外如果加上-logfile_by_day参数的话,将按天输出日志。

[root@localhost trunk]# ./orzdba -lazy -rt -S /home/mysql55/mysql/mysql.sock

注释:
count:此间隔内处理完成的请求数量
avg:此间隔内所有完成的请求,响应的平均时间
95_avg:此间隔内,95%的请求量的平均响应时间,单位微妙,该值较能体现MySQL Server的查询平均响应时间

㈡ 监控InnoDB的各项指标

[root@localhost trunk]# ./orzdba -innodb -S /home/mysql55/mysql/mysql.sock

㈢ 监控MySQL Server性能

[root@localhost trunk]# ./orzdba -mysql -S /home/mysql55/mysql/mysql.sock
 

 

Leave a Reply

Your email address will not be published. Required fields are marked *