使用 pt-stalk 診斷 MySQL 問題

來源:互聯網
上載者:User

   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=oracle2013_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.log2013_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=12013_04_10_15_14_34 Check results: Threads_connected=4, matched=yes, cycles_true=22013_04_10_15_14_35 Check results: Threads_connected=4, matched=yes, cycles_true=32013_04_10_15_14_36 Check results: Threads_connected=4, matched=yes, cycles_true=42013_04_10_15_14_37 Check results: Threads_connected=4, matched=yes, cycles_true=52013_04_10_15_14_37 Collect 1 triggered2013_04_10_15_14_37 Collect 1 PID 240222013_04_10_15_14_37 Collect 1 done2013_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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.