IT技术博客大学习 共学习 共进步

mysql监控工具系列 ― mtop

SQL部落 2009-11-29 21:59:47 浏览 3,465 次

    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监控指南 (阅读 21,102)
  2. 批量添加主机到cacti+nagios的监控报警系统中 (阅读 14,683)
  3. 分享一个JQUERY颜色选择插件 (阅读 14,063)
  4. 我常用的主机监控shell脚本 (阅读 13,104)
  5. 7 天打造前端性能监控系统 (阅读 11,063)
  6. 如何监控HP服务器硬件状态 (阅读 10,505)
  7. Cacti 添加 Nginx 监控 (阅读 10,363)
  8. Linux下三种常用的流量监控软件对比 (阅读 9,984)
  9. Cacti 添加 Memcached 监控 (阅读 9,162)
  10. Cacti 添加 Apache 监控 (阅读 8,984)