免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1849 | 回复: 0
打印 上一主题 下一主题

mysql监控软件之mpdump 详解 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-28 15:49 |只看该作者 |倒序浏览

                                                                1.准备环境
   需要准备的文件:
   a. mpdump+mpfilter+mpreport  
下载地址
   b. perl-JSON  
下载地址
(perl Makefile.PL&&make&&make install)
2. 使用软件
   
mpdump --host=localhost --port=3306 --user=root > dump.txt
mpfilter
也可以直接mpdump,作为监控
3. 监控精度
由于mpdump是通过不断进行show full processlist进行监控的,因此理论上会存在show的间隔内的语句被遗漏的情况,从而有一定的精度问题。下面使用mysqlslap进行测试,测试语句:
触发语句:
mysqlslap -h localhost -u root -p -a -i 5 -c 1 --create-schema=test --number-of-queries=1000
抓取语句:
./mpdump --host=localhost --port=3306 --user=root --interval=xxx >mpfile
统计语句:
cat mpfile |sed  '/\[\]/d'|wc -l
通过测试发现,interval的精细度,关系到能抓取到的语句的精度。关系如下:(由于使用了perl的Hires库,所以支持小于1s的精度)
interval|语句数
0.04|0
0.03|20
0.02|32
0.01|50
0.005|146
0.001|197
如果interval设置为0.005的话,默认mpdump是抓取1000个样本,因此只有5s的记录。如果需要更长时间的监控的话,可以使用mpdump --samples=10000 这样的方式增大sample数。
4. 监控报告
mpfilter会对抓取结果进行语句分类,mpreport会按照语句执行的次数排序给出最终报表。
通过filter和report处理后的结果如下:
1.460:SELECT intcol1,charcol1 FROM t1
0.470:INSERT INTO t1 VALUES ...
0.010:DROP SCHEMA IF EXISTS `test`
0.010:CREATE TABLE `t1` (intcol1 INT(?) ,charcol1 VARCHAR(?))
第一列表示的是语句执行次数占sample的比例,即 count/samples*100 ,本例中监控到insert执行了14.6次。
5. 总结
mpdump+mpfilter+mpreport 优势:
1. 结果可记录
2. 有简明的报表,容易找出对服务器性能占用比重最大的语句。
3. 安装较简单
缺点:
1. 取样的精确度不高,会导致漏过一些重要信息。
2. 会对服务器带来一定压力
3. 缺少语句的执行时间,只能统计次数,而不能统计 次数*时间 这种更为合理的分析参数。
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/90603/showart_2081175.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP