MySQL优化之慢日志分析(Anemometer+Pt-query-digest)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL优化之慢日志分析(Anemometer+Pt-query-digest)相关的知识,希望对你有一定的参考价值。
介绍
使用pt-query-digest搜集慢查询日志。将数据存储在两张表中:global_query_review 和 global_query_review_history。然后使用anemometer将pt-query-digest 搜集的数据以web形式展现出来,方便查询分析。
1、准备条件:
a.LNMP平台
b.mysql开启慢查询
slow_query_log=on #开启数据库的慢日志
long_query_time=0.1 #时间超过0.1s的SQL记录日志中
log-slow-queries=/usr/local/mysql/data/mysql_slow.log #慢日志存放路径
2.安装Percona Toolkit
下载
wget https://www.percona.com/downloads/percona-toolkit/2.2.16/tarball/percona-toolkit-2.2.16.tar.gz
tar xzvf percona-toolkit-2.2.16.tar.gz
cd percona-toolkit-2.2.16
perl Makefile.PL
make
make install
3.安装配置Anemometer
a.下载: https://github.com/box/Anemometer
将Anemometer文件包解压,重命名为anemometer,并移动到/usr/local/nginx/html/Anemometer 下(nginx默认路径)
执行setup 脚本,创建用户:
[[email protected]/anemometer]mysql -uroot -pxxx < install.sql
[[email protected]/anemometer]mysql -uroot -pxxx
mysql > grant all on slow_query_log.* to ‘anemometer‘@‘%‘ identified by ‘test‘;
mysql > grant select on *.* to ‘anemometer‘@‘%‘;
mysql > grant all on slow_query_log.* to ‘anemometer‘@‘localhost‘;
mysql > grant select on *.* to ‘anemometer‘@‘localhost‘;
b.将慢查询日志通过pt-query-digest分析后存入数据库中:
pt-query-digest --user=anemometer --password=test --review h=154.1.1.36,D=slow_query_log,t=global_query_review --history h=154.1.1.36,D=slow_query_log,t=global_query_review_history --no-report --limit=0% --filter=" \$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$HOSTNAME\"" /usr/local/mysql/data/web00-slow.log
c.修改可视界面的配置信息:
cd /usr/local/nginx/html/anemometer/conf
cp sample.config.inc.php config.inc.php
vi config.inc.php
$conf[‘datasources‘][‘154.1.1.36‘] = array( ‘host‘ => ‘154.1.1.36‘, ‘port‘ => 3306, ‘db‘ => ‘slow_query_log‘, ‘user‘ => ‘anemometer‘, ‘password‘ => ‘test‘, ‘tables‘ => array( ‘global_query_review‘ => ‘fact‘, ‘global_query_review_history‘ => ‘dimension‘ ), ‘source_type‘ => ‘slow_query_log‘ );
$conf[‘plugins‘] = array( ‘visual_explain‘ => ‘/usr/bin/pt-visual-explain‘, ‘query_advisor‘ => ‘/usr/bin/pt-query-advisor‘, #... other lines $conn[‘user‘] = ‘anemometer‘; $conn[‘password‘] = ‘test‘; return $conn; },
注: 更新PHP的 timezone:/usr/local/php/etc/php.ini timezone =Asia/Shanghai
4.最终本地通过IP访问:
http://154.1.1.36/anemometer
b.点击特定checksum值进入的页面如下:
后续增加更多图片……
本文出自 “59090939” 博客,请务必保留此出处http://59090939.blog.51cto.com/6338052/1740039
以上是关于MySQL优化之慢日志分析(Anemometer+Pt-query-digest)的主要内容,如果未能解决你的问题,请参考以下文章