Yahoo的MySQL性能分析器详解
一、介绍
Yahoo于前日开源了自己的MySQL性能分析器(MySQL Performance Analyzer),源码托管在GitHub。此性能分析器使用Maven构建,需要JDK 8和Maven 3.0。
此性能分析器项目包含了两个子项目:
1)Java Web应用项目:myperf
2)Jetty Web服务器项目:jetty wrapper
虽然项目在pom.xml配置中指明要使用JDK 8,但其实源码并未使用JDK 8的语言特性,因此修改此pom.xml,改为JDK 7也能正常构建并运行。即把
1.8
1.8
改成
1.7
1.7
目前Yahoo开源的MySQL性能分析器不包含可视化输出,地址:https://github.com/yahoo/mysql_perf_analyzer
Yahoo的性能分析器项目可以用于MySQL的性能监控和分析。
Build过程默认会在目录perfJettyServer/target下创建一个名为myperfserver-server.zip的文件。要构建它的话,在顶层目录执行命令:
mvn clean package
二、MySQL性能分析器的安装及用法
1、根据前面生成的myperfserver-server.zip文件,解压它。
2、默认情况下,此性能分析器会把测试数据也存放在MySQL。所以需要为它创建一个数据库及相关用户。
1)创建一个数据库,名为metrics
2)创建MySQL用户,名为'metrics'@'my_host'
3)分配权限,要能拥有此数据库的所有权限
注意,如果不使用MySQL,那么就会使用内建的Derby数据库。
3、查看脚本start_myperf.sh,看是否需要调整。
通常可能会修改端口号
-j: jettyHome
-p: http port,默认使用9092端口
-w: war,这个必须是myperf.war
-k: working directory,工作目录,如果未指定,将会使用./work目录
-c: url context,URL上下文,默认是/myperf
还要注意修改Java命令行的路径。
4、启动
# ./start_myperf.h
检查nohup.out和log目录,看是否有任何错误日志。
5、关闭
# ./stop_myperf.sh
6、首次启动并登陆
浏览器访问http://your_host:9092/myperf
初始用户名和密码为:myperf/change
登陆后,可以看到设置页面。
可以添加Email地址以便收到通知。
7、配置完成后,可以启动扫描器Scanner
点击Start Scanner按钮
要注意,每次修改了配置后,都需要重启扫描器。
如果扫描器的工作未达到预期,重启分析器:
# ./stop_myperf.sh
# ./start_myperf.sh
对于想监控的每个数据库,都需要创建一个MySQL用户,并分配以下的权限:
1)process权限
2)replication client权限
3)show databases权限
4)show view权限
5)select语句的所有权限
8、分析器依赖Linux的SNMP来收集OS底层的数据,故需检查snmpd服务的状态,看是否启动。
三、注意事项
有两点需注意,
1、snmpd基于Linux规范
2、邮件通知使用了Linux的mailx命令