Percona-Toolkit系列(27) --- pt-stalk

pt-stalk

pt-stalk:官方地址

說明

用途:當MySQL發生故障時收集

語法:

pt-stalk [OPTIONS]

pt-stalk等待觸發條件發生,然後收集數據來幫助診斷問題。該工具被設計爲作爲具有根特權的守護進程運行,這樣您就可以診斷不能直接觀察到的間歇性問題。還可以使用它來執行自定義命令,或者在不等待觸發器發生的情況下根據需要收集數據。

對於偶爾發生的間接性的性能問題,可以通過自定義腳本出發收集動作。如:定義一個腳本,只有在CPU使用率超過60%時,才收集信息。具體

具體例子

如下:通過腳本獲取CPU使用率,然後和--threshold指定的閾值50%比較,如果超過閾值則收集信息。

腳本內容:

pt_cpu.sh

function trg_plugin(){
a=$(sar 1 1 | grep -i "Average:"| awk '{print $8}');echo 100 - $a |bc
}

pt-stalk命令:

[root@BigData ~]# pt-stalk --daemonize --dest=/tmp/log/pt-stalk --user=root --password=123 --port=3306 --function=/tmp/pt_cpu.sh --variable highcpu --cycles=3 --interval=1 --threshold 50 --sleep=60 --log=/var/log/pt-stalk.log
2019_08_01_10_55_57 PID file /var/run/pt-stalk.pid already exists and its PID (15741) is running

pt-stalk會在後臺運行,當CPU使用率達到50%則會自動收集信息,用於性能分析。收集的文件存儲在--dest指定的目錄下:/tmp/log/pt-stalk。

常用的選項:

  • --collect:默認啓用,收集信息。除非指定--no-collect否則都會自動收集相關信息。
  • --config:指定pt-stalk的配置文件。將配置信息寫入文件,而不需要在命令行中指定。如果指定該參數,則必須是第一的位置。
  • --cycles:--variable指定的值必須大於--threshold指定值的次數,纔會觸發收集信息。默認:5
  • --daemonize:後臺運行
  • --defaults-file:指定MySQL的配置文件
  • --dest:收集信息產生文件的存放目錄。默認:/var/lib/pt-stalk。
  • --disk-bytes-free:指定磁盤可用空間不小於該大小才能收集信息,默認:100M。單位:k,M,G和T。
  • --disk-pct-free:和--disk-bytes-free意思一樣,只是剩餘的百分比。
  • --function:指定自定義腳本文件,作爲觸發條件收集信息。默認是監控SHOW GLOBAL STATUS命令。然後將結果傳遞給--variable參數,和 --threshold參數值比較。
    • status
      通過監控SHOW GLOBAL STATUS的參數值,--variable參數指定的監控的具體是哪個參數,默認:Threads_running。
    • processlist
      通過監控SHOW FULL PROCESSLIST命令的結果,--variable參數指定列的值和--match指定值相匹配的次數,如:State列,匹配值:statistics。
      --function processlist \
      --variable State       \
      --match statistics     \
      --threshold 10
      
    • 自定義腳本
      統計InnoDB出現的等待次數。
      trg_plugin() {
      mysql $EXT_ARGV -e "SHOW ENGINE INNODB STATUS" \
          | grep -c "has waited at"
      }
      
  • --iterations:收集次數,默認:永久。
  • --match:匹配SHOW PROCESSLIST中列值。
  • --notify-by-email:發送收集信息到指定的EMAIL中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章