orzdba_性能医生
周万春
orzdba是淘宝DBA团队开发的MySQL监控工具,使用Perl开发,可以完成对Linux系统和MySQL相关指标的实时监控,需要在MySQL实例所在主机运行orzdba。
MYSQL这些监控指标的来源和mysqlreport等工具类似,都是通过show global variables;列出经常关注的核心变量,通过show global status;列出相关MYSQL状态信息。
这个监控工具比较有特色,把系统信息和数据库信息一起监控,就是安装有点麻烦。
[root@db01 ~]# wget http://github.com/downloads/Lowercases/tcprstat/tcprstat-static.v0.3.1.x86_64
[root@db01 ~]# cp -a tcprstat-static.v0.3.1.x86_64 /usr/bin/tcprstat
[root@db01 ~]# chmod u+sx /usr/bin/tcprstat
[root@db01 ~]# ls -l /usr/bin/tcprstat
-rwsr--r-- 1 root root 1183465 Aug 12 2010 /usr/bin/tcprstat
[root@db01 ~]# vim /etc/hosts
10.0.0.11 db01
[root@db01 ~]# yum install perl-Test-Simple.x86_64
perl-Time-HiRes
perl-ExtUtils-CBuilder
perl-ExtUtils-MakeMaker
perl-DBD-MySQL perl-DBI
上传orzdba软件包
[root@db01 ~]# git clone https://github.com/zhangchunsheng/orzdba
[root@db01 ~]# tar -xf /disk/orzdba.tar.gz -C /root/
[root@db01 ~]# cd orzdba/
[root@db01 ~/orzdba]# chmod +x orzdba
[root@db01 ~/orzdba]# tar -xf orzdba_rt_depend_perl_module.tar.gz
[root@db01 ~/orzdba]# cd Perl_Module/
[root@db01 ~/orzdba/Perl_Module]# ls -lh
total 324K
-rw-r--r-- 1 50640 users 5.6K Jan 25 2008 Class-Data-Inheritable-0.08.tar.gz
-rw-r--r-- 1 50640 users 2.5K Aug 6 2010 File-Lockfile-v1.0.5.tar.gz
-rw-r--r-- 1 50640 users 204K Dec 21 2008 Module-Build-0.31.tar.gz
-rw-r--r-- 1 50640 users 105K Apr 27 2012 version-0.99.tar.gz
安装version模块
[root@db01 ~/orzdba/Perl_Module]# tar -xf version-0.99.tar.gz
[root@db01 ~/orzdba/Perl_Module]# cd version-0.99
[root@db01 ~/orzdba/Perl_Module/version-0.99]# perl Makefile.PL
[root@db01 ~/orzdba/Perl_Module/version-0.99]# make
[root@db01 ~/orzdba/Perl_Module/version-0.99]# make test
[root@db01 ~/orzdba/Perl_Module/version-0.99]# make install
安装Module-Build模块
[root@db01 ~/orzdba/Perl_Module]# tar -xf Module-Build-0.31.tar.gz
[root@db01 ~/orzdba/Perl_Module]# cd Module-Build-0.31
[root@db01 ~/orzdba/Perl_Module/Module-Build-0.31]# perl Build.PL
[root@db01 ~/orzdba/Perl_Module/Module-Build-0.31]# ./Build
[root@db01 ~/orzdba/Perl_Module/Module-Build-0.31]# ./Build test
[root@db01 ~/orzdba/Perl_Module/Module-Build-0.31]# ./Build install
安装File::Lockfile模块
[root@db01 ~/orzdba/Perl_Module]# tar -xf File-Lockfile-v1.0.5.tar.gz
[root@db01 ~/orzdba/Perl_Module]# cd File-Lockfile-v1.0.5
[root@db01 ~/orzdba/Perl_Module/File-Lockfile-v1.0.5]# perl Build.PL
[root@db01 ~/orzdba/Perl_Module/File-Lockfile-v1.0.5]# perl ./Build
[root@db01 ~/orzdba/Perl_Module/File-Lockfile-v1.0.5]# perl ./Build test
[root@db01 ~/orzdba/Perl_Module/File-Lockfile-v1.0.5]# perl ./Build install
安装Class-Data-Inheritable模块
[root@db01 ~/orzdba/Perl_Module]# tar -xf Class-Data-Inheritable-0.08.tar.gz
[root@db01 ~/orzdba/Perl_Module]# cd Class-Data-Inheritable-0.08
[root@db01 ~/orzdba/Perl_Module/Class-Data-Inheritable-0.08]# perl Makefile.PL
[root@db01 ~/orzdba/Perl_Module/Class-Data-Inheritable-0.08]# make
[root@db01 ~/orzdba/Perl_Module/Class-Data-Inheritable-0.08]# make test
[root@db01 ~/orzdba/Perl_Module/Class-Data-Inheritable-0.08]# make install
配置登录密码
在代码的160行左右,配置自己的MySQL验证信息:username、password、socket、host、port,建议配置--login-path=dba
[root@db01 ~/orzdba]# vim orzdba
my $MYSQL = qq{mysql --login-path=dba -s --skip-column-names };
[root@db01 ~/orzdba]# ./orzdba --help
监控系统和MYSQL各项指标
[root@db01 ~/orzdba]# ./orzdba -lazy -rt -S /data/mysql/mysql3306/sock/mysql.sock
监控InnoDB的各项指标
文档中给出[innodb请求命中率]的计算公式为:Hit% = (Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads) / Innodb_buffer_pool_read_requests * 100%
[root@db01 ~/orzdba]# ./orzdba -innodb -S /data/mysql/mysql3306/sock/mysql.sock
监控MySQL Server性能
[root@db01 ~/orzdba]# ./orzdba -mysql -S /data/mysql/mysql3306/sock/mysql.sock
Linux系统信息的监控
[root@db01 ~/orzdba]# ./orzdba -sys
查询数据库节点主机cpu,每两秒显示一次,共显示10次,将结果放到cpu.log中
# ./orzdba -c -i 2 -C 10 -L cpu.log