mysql监控和性能分析工具

mysql监控和性能分析工具


Mysql作为广泛应用的数据库系统,平时运维工作中对她的监控必不可少,现在把我对Mysql数据库的监控体会写成下文,欢迎拍砖。

无论是DBA或是SA,监控的目标都很明确,无外乎 
1.快速的得到Mysql过去一段时间或者当前运行的状态

2.因硬件升级或者系统配置的改变而诊断对Mysql数据库性能影响

3.在Mysql数据库系统出现故障要能够及时收到告警

4.为日后编写运维报告提供各项数据指标供分析

5.……

想到了再做补充。而所有以上这些目的,通过各种方法和手段都可以做到。

   自从Mysql数据库系统启动并且提供服务,Mysql内部自身的一套“计数器”就开始工作,可以通过

Show Global Status , Show global variables ,Show full processlist

得到Mysql数据库系统当前各种系统变量和状态 ,并且后文介绍个各种监控工具几乎都是对这三个指令的输出

进行数据的计算和统计分析。

这里要提到的是mysqladmin这个Mysql自带的工具,除了用来做各种管理工作,还 可以用来做监控

例如:每个10秒输出一次mysql的状态信息

#./mysqladmin -i 10 extended status

下面进入文章正题

一。GUI 类监控工具

1.MySQL administrator

Mysql公司发布管理工具,安装和使用都很方便

可以对Mysql 的状态,变量和进程监控,并且有简单图形绘制输出。

2.Cacti

用它来做系统监控的同仁相信很多,目前各种插件数量也很多,足以满足绝大多数公司监控要求。

这里要说的是Mysql监控插件teMySQL_cacti,能够对mysql做比较全面的监 控,

但是我发现这个插件很长时间没有更新了。

3.Mysql-cacti-templates

Google cacti : http://code.google.com/p/mysql-cacti-templates/

这个应该说是teMySQL_cacti的升级和改进版本,项目发起人是主编《High Performance MySQL, Second Edition.》的作者

他的主页 http://www.xaprb.com/blog/

本人推荐使用,功能强大丰富。

4.Nagios

这个天天使用,没啥好说的,可以自己写监控脚本来监控,和cacti结合使用是不错的搭配!

5.Munin

Munin是一款和cacti类似的系统监控工具,有兴趣的可以去研究研究

http://munin.projects.linpro.no/ ,这里不多说

6.Zenoss

测试过一次,用的不多,不做什么评价

7.MySQL Enterprise Monitor

Mysql 旗舰付费产品,功能丰富

详细信息 http://www.mysql.com/products/enterprise/monitor.html

能够监控,报警,绘图,并提供性能优化和建议,集众多监控指标于一身,好是好,可以要花钱的 哦

有兴趣的可以去download 30天的试用版本体验。

二。文字模式的监控工具

我了解并使用过的有

1.mytop

类似linux下top命令的输入

http://jeremy.zawodny.com/mysql/mytop/

2.mtstat-mysql

http://pypi.python.org/pypi/mtstat-mysql/0.7.3.3

3.mysqlreport

http://hackmysql.com/mysqlreport

看我写的这篇文章

用mysqlreport监控并输出mysql状态值  http://www.askwan.com/read.php?44

4.innotop

这个针对innodb存储引擎数据库的监控,功能丰富

http://www.xaprb.com/blog/2006/07/02/innotop-mysql-innodb-monitor/

三。自己写脚本监控

参看我以前写过一篇文章

http://www.askwan.com/read.php?96

方法和原理一样,可以定制需求

以上各种工具和方法各有自己特色,如何选择,可以根据需求和自己的情况定,目的只有一个,效 益最大化!

--------------------END-------------------- 相关日志

地址:http://www.askwan.com/read.php?140

 

==================用mysqlreport监控并输出mysql状态值====================

      mysqlreport 以非 常友好的方式显示MySQL状态变量值。和SHOW STATUS不同,mysqlreport以一种非常格式化的方式输出状态值,具有非常好的可读性。
官 方站点是:http://hackmysql.com

安 装mysqlreport非常简单

Quotation#cd /usr/local/sbin
#wget hackmysql.com/scripts/mysqlreport
#chmod 755 mysqlreport

常 用选项

Quotation#mysqlreport --help        
mysqlreport v3.5 Apr 16 2008
mysqlreport makes an easy-to-read report of important MySQL status values.

Command line options (abbreviations work):
--user USER       Connect to MySQL as USER
--password PASS   Use PASS or prompt for MySQL user's password
--host ADDRESS    Connect to MySQL at ADDRESS
--port PORT       Connect to MySQL at PORT
--socket SOCKET   Connect to MySQL at SOCKET
--no-mycnf        Don't read ~/.my.cnf
--infile FILE     Read status values from FILE instead of MySQL
--outfile FILE    Write report to FILE
--email ADDRESS   Email report to ADDRESS (doesn't work on Windows)
--flush-status    Issue FLUSH STATUS; after getting current values
--relative X      Generate relative reports. If X is an integer,
reports are live from the MySQL server X seconds apart.
If X is a list of infiles (file1 file2 etc.),
reports are generated from the infiles in the order
that they are given.
--report-count N  Collect N number of live relative reports (default 1)
--detach          Fork and detach from terminal (run in background)
--help            Prints this
--debug           Print debugging information

Visit http://hackmysql.com/mysqlreport for more information.


#mysqlreport  --user USER  --password PASS

QuotationMySQL 5.0.37-log         uptime 0 0:21:32       Tue Apr 29 23:55:28 2008

__ Key _________________________________________________________________
Buffer used    12.16M of 512.00M  %Used:   2.38
Current      71.12M            %Usage:  13.89
Write hit       7.14%
Read hit       99.99%

__ Questions ___________________________________________________________
Total         126.66k    98.0/s
QC Hits      94.01k    72.8/s  %Total:  74.22
DMS          24.29k    18.8/s           19.18
Com_          6.27k     4.9/s            4.95
COM_QUIT      2.09k     1.6/s            1.65
-Unknown          2     0.0/s            0.00
Slow 5 s            0       0/s            0.00  %DMS:   0.00  Log:  ON
DMS            24.29k    18.8/s           19.18
SELECT       24.16k    18.7/s           19.08         99.47
UPDATE          121     0.1/s            0.10          0.50
REPLACE           6     0.0/s            0.00          0.02
INSERT            2     0.0/s            0.00          0.01
DELETE            0       0/s            0.00          0.00
Com_            6.27k     4.9/s            4.95
set_option    4.18k     3.2/s            3.30
change_db     2.09k     1.6/s            1.65
show_variab       3     0.0/s            0.00

__ SELECT and Sort _____________________________________________________
Scan            2.52k     2.0/s %SELECT:  10.44
Range           2.46k     1.9/s           10.17
Full join         881     0.7/s            3.65
Range check         0       0/s            0.00
Full rng join       0       0/s            0.00
Sort scan       3.83k     3.0/s
Sort range        527     0.4/s
Sort mrg pass       6     0.0/s

__ Query Cache _________________________________________________________
Memory usage    6.39M of  32.00M  %Used:  19.98
Block Fragmnt  16.20%
Hits           94.01k    72.8/s
Inserts        23.61k    18.3/s
Insrt:Prune  23.61k:1    18.3/s
Hit:Insert     3.98:1

__ Table Locks _________________________________________________________
Waited             15     0.0/s  %Total:   0.04
Immediate      35.38k    27.4/s

__ Tables ______________________________________________________________
Open               98 of  512    %Cache:  19.14
Opened            104     0.1/s

__ Connections _________________________________________________________
Max used           11 of 1000      %Max:   0.11
Total           2.09k     1.6/s

__ Created Temp ________________________________________________________
Disk table        153     0.1/s
Table           3.83k     3.0/s    Size:   2.0G
File               17     0.0/s

__ Threads _____________________________________________________________
Running             2 of    3
Cached              5 of    8      %Hit:  99.47
Created            11     0.0/s
Slow                0       0/s

__ Aborted _____________________________________________________________
Clients             0       0/s
Connects            0       0/s

__ Bytes _______________________________________________________________
Sent          140.73M  108.9k/s
Received       12.88M   10.0k/s

__ InnoDB Buffer Pool __________________________________________________
Usage         304.00k of   8.00M  %Used:   3.71
Read hit       84.42%
Pages
Free            493            %Total:  96.29
Data             19                      3.71 %Drty:   0.00
Misc              0                      0.00
Latched           0                      0.00
Reads              77     0.1/s
From file        12     0.0/s           15.58
Ahead Rnd         1     0.0/s
Ahead Sql         0       0/s
Writes              0       0/s
Flushes             0       0/s
Wait Free           0       0/s

__ InnoDB Lock _________________________________________________________
Waits               0       0/s
Current             0
Time acquiring
Total             0 ms
Average           0 ms
Max               0 ms

__ InnoDB Data, Pages, Rows ____________________________________________
Data
Reads            25     0.0/s
Writes            3     0.0/s
fsync             3     0.0/s
Pending
Reads           0
Writes          0
fsync           0

Pages
Created           0       0/s
Read             19     0.0/s
Written           0       0/s

Rows
Deleted           0       0/s
Inserted          0       0/s
Read              0       0/s
Updated           0       0/s
通过这个报表可以快速 知道mysql的运行状态,需要做什么调整等
更多信息和相关用法可以参考The Guide To Understanding mysqlreport

报表说明参考:http://bbs.chinaunix.net/thread-1323591-1-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值