技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> mysql监控工具系列 ― mtop

mysql监控工具系列 ― mtop

浏览:2781次  出处信息

    1.准备

依赖文件:

    mysql 和 perl (这些普通服务器都有,不赘述了)

    perl-Curses : 下载地址-curses.tgz

    mtop安装包:mtop下载

    

    2. Curses的安装

# tar zxvf Curses-x.xx.tar.gz# cd Curses*# perl Makefile.PL# make# make install

    在make时可能会报错,需要对 Curses.c 275行做如下修改:

    原文件:if (Perl_sv_isa(sv, “Curses::Window”)) {

    修改后:if (sv_isa(sv, “Curses::Window”)) {

    3. 安装mtop

# tar zxvf mtop-0.6.6.tar.gz# cd mtop-0.6.6# perl Makefile.PL# make# make install

    4. 运行mtop

    这里可以选择单独为mtop创建一个有RELOAD,PROCESS,SUPER 权限的用户。

    mysql> GRANT RELOAD,PROCESS,SUPER ON *.* TO ‘mtop’@\'localhost’ IDENTIFIED BY ‘mtop’;

    mysql> FLUSH PRIVILEGES;

    如果只是为了短暂的检测一下数据库,也可以直接使用mtop。

    > mtop -dbuser=root -password=’xxx’ -host=localhost -seconds=1

    5. mtop监控的精度

    由于mtop监控的原理是以seconds作为间隔进行一次 show process 操作。

    因此所以猜测:如果语句执行的时间小于1s就很难被mtop抓到。唯一被抓到的可能性就是,语句的短暂执行过程中的某个时刻,正好mtop进行了刷新,这时候mtop才能够抓到语句,并显示在屏幕上。

    从实际试验中我们也证明了这一猜测,普通的快速的select 语句的执行不会显现在mtop中。因此,我认为mtop适用于压力比较大,或者一段时间内会出现性能瓶颈时的监控。大并发,或者slow-query才容易被mtop抓下,从而用于mysql语句调优,瓶颈分析。

    6. mtop对服务器性能的影响

    由于mtop是以一定间隔不断的执行show processlist的语句,因此猜测:mtop会对mysql的执行性能有一定影响。以下用mysqlslap分别对 有mtop 和 没有mtop监控两种情况下的数据库性能进行测试:

    测试结果:

    测试参数;并发10,语句1000,循环5次

    mysqlslap -h localhost -uroot -p -a -i 5 -c 10 -create-schema=test -number-of-queries=1000

    测试参数;并发100,语句1000,循环5次

    mysqlslap -h localhost -uroot -p -a -i 5 -c 100 -create-schema=test -number-of-queries=1000

10并发 100并发
有mtop监控 2.056 4.462
无mtop监控 2.047 4.338

    

    结论:

    可见随着并发的增加,mtop对性能的影响也越为明显;

    10,50,100并发时,效率降低幅度分别为0.44%,0.65%,2% ; 结合之前所说的mtop使用的场景,可能mtop的使用会对服务器带来一定压力,这一点在使用时,需要引起注意。

    7. 总结

    简单的说mtop就是一个quick view of mysql connections。但是,应用的场景较少,并且会对服务器带来一小部分压力。

    总结一下应用场景:

a. 快速的对mysql连接情况进行了解

    b. 短时间的mysql连接情况的监控

    c. 数据库瓶颈分析的初步定为

    简单的说mtop就是一个quick view of mysql connections。但是,应用的场景较少,并且会对服务器带来一小部分压力。

    优点:

a. 单个文件,安装简单

    b. 即时获得结果,快速分析

    缺点:

a. 精度低,不能抓到所有process。

    b. 在大并发时,对数据库有小幅压力。

    c. 会不断增加数据库QUERIES的数值,对今后的数据库数据分析会带来一定影响。

    d. 获得到的数据较少,参考价值较少

建议继续学习:

  1. Mysql监控指南    (阅读:19774)
  2. 批量添加主机到cacti+nagios的监控报警系统中    (阅读:13254)
  3. 分享一个JQUERY颜色选择插件    (阅读:12630)
  4. 我常用的主机监控shell脚本    (阅读:11486)
  5. 7 天打造前端性能监控系统    (阅读:10084)
  6. 如何监控HP服务器硬件状态    (阅读:9089)
  7. Cacti 添加 Nginx 监控    (阅读:8894)
  8. Linux下三种常用的流量监控软件对比    (阅读:8668)
  9. Cacti 添加 Memcached 监控    (阅读:8096)
  10. Cacti 添加 Apache 监控    (阅读:7552)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1