MySQL性能分析、及调优工具使用详解 (4)

注意:下面的2个参数的调用默认是没有地方输入用户名和密码的,因此建议将密码写到/etc/my.cnf client段里面。

./orzdba -mysql -C 10 -i 1

wKiom1kLORCwbCB7AAC0fG81918234.png


./orzdba -innodb -C 10 -i 1

wKiom1kLORDCLGVKAADjDff6GfM782.png


tcpdump抓包捕获瞬间的SQL

step1

tcpdump -s 65535 -x -nn -q -tttt -i eth0 -c 5000 port 3306 > /root/dump.txt

上面的命令参数含义:

    -s     #snaplen, 也就是数据包的截取长度

    -nn    #将地址、端口显示为数字格式【经常用】

    -q     #快速输出。只输出较少的协议信息。【经常用】

    -tttt # 在每行打印的时间戳之前添加日期的打印【经常用】

    -c     #在收到指定的数量的分组后,tcpdump就会停止。

 

step2

pt-query-digest --type tcpdump/root/dump.txt  即可分析出结果


#!/bin/bash

#实时采集并分析1000个分组的sql包数据

#Date:2017/05/02

 

#注意部分机器的网卡是eth1或多网卡,脚本里面需要做修改

 

source/etc/profile

 

[! -e /usr/sbin/tcpdump ] &&  yum  install  tcpdump -y > /dev/null 2>&1

 

#如果抓取的数据太少,可以修改-c 5000 多抓取些用于分析

tcpdump -s 65535 -x -nn -q -tttt -i eth0 -c 5000 port 3306 > /root/dump.txt && pt-query-digest --type tcpdump /root/dump.txt > /root/pt_result.log

 

if[ $? -eq 0 ] ; then

  echo "统计结果输出到/root/pt_result.log" && rm -f /root/dump.txt

else

  echo "程序运行出错"

fi

 

 

dodba 【推荐】

doDBA tools是一个基于控制台的远程监控工具,它不需要在本地/远程系统上安装任何软件,它可以实时收集操作系统、MySQL、InnoDB的实时性能状态数据,并可以生成Doing日志文件,来帮助你快速了解/优化系统及MySQL数据库。

 

远程收集系统信息是通过ssh(用户名密码或建立信任)的方式连接到远程服务器上收集,收集的方法都是通过读取Linuxproc下的等meminfodiskstatsuptimenetvmstat cpuinfo loadavg等文件,这和pmmzabbix收集方式一致。

 

远程收集MySQL信息是通过 MySQL tcp连接到MySQL数据库上收集,只需要授予连接用户PROCESSSELECT权限即可。

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwpfj.html