监控mysql服务器状态

监控mysql状态,有两种方式:

1, 进入mysql服务器, 执行 show status 命令查看mysql当前运行的状态.
2, 使用 mysqlreport 工具, 更条理化地查看mysql状态, 基于 show status.

第一种方式,是mysql原生支持的.使用起来比较方便.
缺点是, 数据零散, 没有百分比和统计, 难理解, 可读性差.

第二种方式, 相对来说就好很多.本身就是个报表, 统计数据看起来比较舒服.
这里也着重讨论mysqlreport.

一篇介绍 mysqlreport 工具使用相关的中文教程.

mysqlreport实用功能:
1, 通过 show status 格式的文件, 直接导出报表.
mysqlreport支持导入历史的 show status 数据文件来生成报表, 但前提是, 之前你已经用将 show status 打印出来的数据导出到文件里.
mysqlreport --user root --password  --infile filename

2, 直接将报表输出到文件里.
mysqlreport --user root --password  --outfile filename

3, 周期生成报表.
mysqlreport --user root --password  --relative 60 --report-count 100 -detach --outfile reportfile
间隔60秒生成一次报表,并写入 reportfile 文件, 一共生成100次. 
文件里会列出报表的执行次序和时间.

4, 指定要输出哪些内容的报表.
包括 dtq, dms, sas,  qcache, tab, innodb 等.不过默认不设置, 是all.

报表内容的解释:
官方原文在这里: http://hackmysql.com/mysqlreportguide
一篇台湾作者汉化的文章: http://forum.slime.com.tw/thread208416.html

下面是我比较关注的一些参数(使用innodb, 所以 key buffer, table locks等无关):
uptime, 服务器负载, 当然这里的统计是否跟直接敲 uptime 一样准确, 有待考证.

Questions, 关注 DMS, slow 就够了, 特别是DMS里每秒处理的sql次数, 应该在压力测试时, 把这个值压上去.
然后在线上可以对比这个值. slow 呢就是慢查询的次数.越少越好了, 不过这个可以通过 mysqlsla 工具来特别针对slow log进行监控, 调优.

Select and sort, 这里着重关注  scan 和 full join , 监控走全表扫描的sql次数, 另外配合 slow log 可以方便地调优一些较慢的sql.

Query cache , 走缓存的比率Hits,越高越好.

Threads 里的 hits , 如果命中率很低,那么每次查询都需要新建线程, 考虑加大线程缓存 thread_cache_size.

Connections, 数据库连接占用情况, 这个不用说, 依据实际情况.

innodb需要关注的点详见:  http://galaxystar.javaeye.com/blog/239882
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值