? ?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
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
