zoukankan      html  css  js  c++  java
  • 使用 ptstalk 诊断 MySQL 问题

       pt-stalk 适用场景:
       
       ① MySQL Server 性能波动出现的 频率 很低、例如、几天一次
       ② MySQL Server 性能波动出现的 机率 很快、例如、几秒闪过
       
        ㈠ 安装
       
       ① 下载
             http://www.percona.com/downloads/percona-toolkit/LATEST/
       
          
       ② 问题
          
            MySQL RPM安装的可能会遇到下面问题:
       
            Warning: prerequisite DBD::mysql 3 not found.
            Warning: prerequisite DBI 1.46 not found.
            Writing Makefile for percona-toolkit
       
          处理方法如下:
          分 2 步:
          
          ⑴ 配置 percona 源:
       
               http://www.percona.com/doc/percona-server/5.5/installation/yum_repo.html
       
               # yum list | grep percona
               # yum install Percona-Server-shared-compat-5.5.19-rel24.0.204.rhel5.i386.rpm
          
          ⑵ 安装驱动
          
               Perl DBD::mysql
             
               下载:http://search.cpan.org/~capttofu/DBD-mysql-3.0007_2/
               不过、这之前要先把 MySQL-devel-community 包给打上
       
       
       ㈡ 使用
          

            例子

    [root@localhost ~]# pt-stalk --collect-tcpdump --function status \
    > --variable Threads_connected --threshold 2 \
    > --daemonize -- --user=root --password=oracle
    2013_04_10_15_15_34 PID file /var/run/pt-stalk.pid already exists and its PID (23950) is running


          上面的命令表示,让pt-stalk后台运行(--daemonize),并监视SHOW GLOBAL STATUS中的Threads_connected状态值
          如果该值超过2,则触发收集主机和MySQL的性能、状态信息
          pt-stalk会每隔一秒检查一次状态值,如果连续5次满足触发条件,则开始收集
          --collect-tcpdump表示除了收集基本信息外,还将额外使用tcpdump收集当时的网络包
          类似的还可以使用--collect-gdb等
        
          
       ㈢ 查看 pt-stalk 的工作状态
          
            pt-stalk是一个后台程序,默认我们可以通过文件/var/log/pt-stalk.log,查看pt-stalk的运行状态:

    [root@localhost ~]# tail -f /var/log/pt-stalk.log
    2013_04_10_15_14_33 Starting /usr/bin/pt-stalk --function=status --variable=Threads_connected --threshold=2 --match= --cycles=5 --interval=1 --iterations= --run-time=30 --sleep=300 --dest=/var/lib/pt-stalk --prefix= --notify-by-email= --log=/var/log/pt-stalk.log --pid=/var/run/pt-stalk.pid --plugin=
    2013_04_10_15_14_33 Check results: Threads_connected=4, matched=yes, cycles_true=1
    2013_04_10_15_14_34 Check results: Threads_connected=4, matched=yes, cycles_true=2
    2013_04_10_15_14_35 Check results: Threads_connected=4, matched=yes, cycles_true=3
    2013_04_10_15_14_36 Check results: Threads_connected=4, matched=yes, cycles_true=4
    2013_04_10_15_14_37 Check results: Threads_connected=4, matched=yes, cycles_true=5
    2013_04_10_15_14_37 Collect 1 triggered
    2013_04_10_15_14_37 Collect 1 PID 24022
    2013_04_10_15_14_37 Collect 1 done
    2013_04_10_15_14_37 Sleeping 300 seconds after collect


          你还可以通过参数--log指定一个你希望的log目录和文件


          
       ㈣ pt-stalk收集的性能和状态数据存放处
          
            默认pt-stalk将收集的数据放在目录/var/lib/pt-stalk下,你可以使用参数--dest指定你希望的目录
            这些数据都是原始数据,我们可以根据这些来分析当时MySQL或者主机是否有异常
          
          


       ㈤ pt-stalk的触发条件
          
          在上面的示例中触发参数是:"--function status --variable Threads_connected --threshold 2"
          表示MySQL状态值Threads_connected超过2时触发数据收集。常用的触发条件还可以使用Threads_running等
          另外还可以使用SHOW PROCESSLIST的中的结果触发
          例如"--function processlist --variable State --match statistics --threshold 10"表示
          show processlist中State列的值为statistics的线程数超过10则触发收集
          
          
          
       更多方法、请
    man pt-stalk

  • 相关阅读:
    Android绝黑剑之AutoCompleteTextView、MultiAutoCompleteTextView之智能联想
    F5 BIGIP负载均衡器配置实例与Web管理界面体验
    Java进阶之动态绑定
    某大型银行深化系统之二十:异常规范
    数据结构之排序
    数据结构之数组
    使用ssh来登录其它linux机器
    beanstalkc简易指令说明集
    ruby数组方法concat和push的区别
    uWSGI基础攻略
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3013839.html
Copyright © 2011-2022 走看看