天天看点

Yahoo的MySQL性能分析器详解Yahoo的MySQL性能分析器详解

版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/45950465

Yahoo的MySQL性能分析器详解

作者:chszs,转载需注明。博客主页: http://blog.csdn.net/chszs

一、介绍

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也能正常构建并运行。即把

<source>1.8</source>
<target>1.8</target>
           

改成

<source>1.7</source>
<target>1.7</target>
           

目前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命令