search 2013 adfgs
作者:Sky.Jian | 可以任意转载, 但转载时务必以超链接形式标明文章原始出处 和 作者信息 及 版权声明
链接:http://isky000.com/mysqltools/myperf-beta | del.icio.us | Twitter it

一直苦恼于 MySQL 没有像 Oracle Statspack 这样的性能分析工具,调优手段太少。很久以前自己学习 C 的时候,写了个简单的收集分析 MySQL 性能状态数据的小工具,之所以选择用 C 去写,一来是为了熟悉 MySQL 的 C API,熟悉 MySQL 代码,另一方面想捡回早就丢掉的 C 语言知识(后被证明很难实现,哈哈)。

随着 MySQL 5.5的出现,MySQL 新增了 Performance Schema,用于展示一些系统等待事件和性能信息。虽然仍然没有 DBA 最需要的 SQL 执行的信息,但至少比以前仅仅只有一些简单的 status 有了很大的进步。

所以最近又想完善一下这个被我自己称为 MySQL Performance Tool 的工具 “myperf” 。这次选择用较轻量级的脚本来实现,简单快速嘛(其实对我也是刚开始学习的,哈哈)

暂时计划包含以下3个功能:

  • 显示实时性能状态 (top mode)
  • 对性能状态做snapshot  (snap mode)
  • 分析性能状态,输出报告 (report mode)

目前暂时先做了第一个功能点,连接到需要查看的数据库后以类似于linux 上 top 命令的方式实时刷新,包括active session 也会输出。

实现比较简陋,当前目标是基本能用就行。下面是输出截图:

欢迎有兴趣和我一起完善这个工具的同学加入和我一起完善他,有兴趣请 gmail 给 sky000。

, , , ,

已经有8个回复

  1. yinlenc Says @ 11-06-18 9:54 am

    这个工具使用什么语言实现的? 这种设计很好!
    另外,info 会存日志吗?

  2. freeke Says @ 11-06-18 10:03 am

    这个不错哦,对了cacti的那个模板如何呢?

  3. 朝阳 Says @ 11-06-18 4:39 pm

    @yinlenc: 保存性能数据的snapshot功能会在后面陆续完成,目前才完成了第一个功能点

  4. 朝阳 Says @ 11-06-18 4:40 pm

    @freeke:还没有研究 cacti 的相关模板,貌似扯不上关系吧?

  5. YCFlame Says @ 11-06-19 9:58 pm

    装完MySQLdb之后,运行myperf -u root报错:Segmentation Fault。机器上的MySQL对于root用户默认没有密码,使用mysql -u root可以正常登陆。是否需要指定其他的参数?

  6. 朝阳 Says @ 11-06-20 11:25 am

    @YCFlame: 仅仅只有“Segmentation Fault”这样的输出信息吗?是否还有其他信息输出?

  7. freewill Says @ 11-06-27 12:05 pm

    我们是用php来做的,这样可以直接在网页上查看监控信息,感觉方便一点。

  8. DMOLD模具设计 Says @ 11-07-27 5:54 pm

    正在深入学习MYSQL,学习了,博主很专业。

看完了要说点啥么?