pt-stalk
?
pt-stalk
1.? 概述
在MySQL服務(wù)器出現(xiàn)短暫(5~30秒)的性能波動(dòng)的時(shí)候,一般的性能監(jiān)控工具都很難抓住故障現(xiàn)場,也就很難收集對應(yīng)較細(xì)粒度的診斷信息。另外,如果這種波動(dòng)出現(xiàn)的頻率很低,例如幾天才一次,我們也很難人為的抓住現(xiàn)場,收集數(shù)據(jù)。這正是pt-stalk所解決的問題。
2.? 收集的性能和狀態(tài)數(shù)據(jù)
讓pt-stalk后臺(tái)運(yùn)行(--daemonize),并監(jiān)視SHOW GLOBAL STATUS中的Threads_connected狀態(tài)值,如果該值超過10,則觸發(fā)收集主機(jī)和MySQL的性能、狀態(tài)信息。pt-stalk會(huì)每隔一秒檢查一次狀態(tài)值,如果連續(xù)5次滿足觸發(fā)條件,則開始收集。
pt-stalk --collect-tcpdump --function status \
--variable Threads_connected --threshold 2500 \
--dest /data/dbdata/pt-stalk --iterations 10 \
--daemonize -- --user=root -ptest
使用pt-sift進(jìn)行監(jiān)控文件分析(man pt-sift查看使用方法):
?pt-sift /data/dbdata/pt-stalk/2016_08_22_15_50_19-tcpdump
3.? 參數(shù)
※ –function:設(shè)置觸發(fā)條件,包括status、processlist、自定義腳本,詳細(xì)見觸發(fā)條件部分
※ –dest:設(shè)置collect信息的存儲(chǔ)目錄,默認(rèn)/var/lib/pt-stalk/。
說明:設(shè)置–dest /u01/mysql選項(xiàng)到mysql目錄之后,pt-stalk在清理超過期限的日志時(shí),會(huì)暴力的將該目錄下所有修改時(shí)間超過一定日期的文件全部刪掉,因此在設(shè)置dest目錄時(shí)必須慎重(如果設(shè)置最好是一個(gè)獨(dú)立的目錄,而不是跟mysql或者其他設(shè)置在同一個(gè)目錄)。–dest默認(rèn)值是查看pt-stalk的源碼(默認(rèn)pt-stalk將收集的數(shù)據(jù)放在目錄/var/lib/pt-stalk下):
※??? –iterations:該參數(shù)指定pt-stalk在收集幾次故障現(xiàn)場后就退出。默認(rèn)pt-stalk會(huì)一直運(yùn)行。
※ –run-time:觸發(fā)收集后,該參數(shù)指定收集多長時(shí)間的數(shù)據(jù)。默認(rèn)是30秒,比如show processlist會(huì)連續(xù)收集30次。
※ –sleep:為防止一直觸發(fā)收集數(shù)據(jù),該參數(shù)指定在某次觸發(fā)后,必須sleep一段時(shí)候才繼續(xù)觀察并觸發(fā)收集。默認(rèn)是300秒
※ –interval:默認(rèn)情況pt-stalk會(huì)每隔一秒檢查一次狀態(tài)數(shù)據(jù),判斷是否需要觸發(fā)收集。該參數(shù)指定間隔時(shí)間,默認(rèn)是1秒。
※ –cycles:默認(rèn)情況pt-stalk只有連續(xù)觀察到五次狀態(tài)值滿足觸發(fā)條件時(shí),才觸發(fā)收集。該參數(shù)控制,需要連續(xù)幾次滿足條件,收集被觸發(fā),默認(rèn)是5次。
※ –verbose:設(shè)置log的輸出級別,默認(rèn)是2;第一次運(yùn)行可以設(shè)置為3,方便觀察情況0(Errors)、1(Warnings)、2(Matching triggers and collection info)、3(Non-matching triggers)
※ –plugin:和–function參數(shù)類似,可以指定一個(gè)包含before_collect、after_collect等函數(shù)的shell腳本。
※ --log指定一個(gè)你希望的log目錄和文件,默認(rèn)我們可以通過文件/var/log/pt-stalk.log,查看pt-stalk的運(yùn)行狀態(tài)
4.? 觸發(fā)條件
三種觸發(fā)條件,通過參數(shù)function設(shè)置:
※ status
–function status –variable Threads_connected –threshold 2500,表示MySQL狀態(tài)值Threads_connected超過2500時(shí)觸發(fā)數(shù)據(jù)收集。常用的觸發(fā)條件還可以使用Threads_running等。
※ processlist?
–function processlist –variable State –match statistics –threshold 10,表示,show processlist中State列的值為statistics的線程數(shù)超過10則觸發(fā)收集。
※??? 自定義腳本?
5.? 參考文檔?
http://www.tuicool.com/articles/JjUNji
http://www.orczhou.com/index.php/2012/06/mysql-troubleshooting-with-pt-stakl/
http://wenku.baidu.com/link?url=a3fZVGFqoeS4WIT7kCMtkuVteqVYn0K2wFVaU80B2DERFyKHvFGJkZ9SVeDldpiy3Z-D1Y3cMeFdBEEuDdCCYz0cMS2R-4kA5Jc6UJWoV07
轉(zhuǎn)載于:https://www.cnblogs.com/hfclytze/p/pt-stalk.html
總結(jié)
- 上一篇: bzoj1532: [POI2005]K
- 下一篇: 软考考前冲刺第一章计算机硬件基础知识