? ?pt-stalk 適用場(chǎng)景:
? ?
? ?① MySQL Server 性能波動(dòng)出現(xiàn)的
頻率
很低、例如、幾天一次
? ?② MySQL Server 性能波動(dòng)出現(xiàn)的
機(jī)率
很快、例如、幾秒閃過
? ?
? ?
㈠ 安裝
? ?
? ?① 下載
? ? ? ? ?http://www.percona.com/downloads/percona-toolkit/LATEST/
? ?
? ? ??
? ?② 問題
? ? ??
? ? ? ? MySQL RPM安裝的可能會(huì)遇到下面問題:
? ?
? ? ? ? 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
? ? ??
? ? ? ⑵ 安裝驅(qū)動(dòng)
? ? ??
? ? ? ? ? ?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后臺(tái)運(yùn)行(--daemonize),并監(jiān)視SHOW GLOBAL STATUS中的Threads_connected狀態(tài)值
? ? ? 如果該值超過2,則觸發(fā)收集主機(jī)和MySQL的性能、狀態(tài)信息
? ? ? pt-stalk會(huì)每隔一秒檢查一次狀態(tài)值,如果連續(xù)5次滿足觸發(fā)條件,則開始收集
? ? ? --collect-tcpdump表示除了收集基本信息外,還將額外使用tcpdump收集當(dāng)時(shí)的網(wǎng)絡(luò)包
? ? ? 類似的還可以使用--collect-gdb等
? ??
? ? ??
? ?
㈢ 查看 pt-stalk 的工作狀態(tài)
? ? ??
? ? ? ? pt-stalk是一個(gè)
后臺(tái)程序
,默認(rèn)我們可以通過文件/var/log/pt-stalk.log,查看pt-stalk的運(yùn)行狀態(tài):
?
?
[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
?
? ? ? 你還可以通過參數(shù)--log指定一個(gè)你希望的log目錄和文件
? ? ??
? ?
㈣ pt-stalk收集的性能和狀態(tài)數(shù)據(jù)存放處
? ? ??
? ? ? ? 默認(rèn)pt-stalk將收集的數(shù)據(jù)放在目錄/var/lib/pt-stalk下,你可以使用參數(shù)--dest指定你希望的目錄
? ? ? ? 這些數(shù)據(jù)都是原始數(shù)據(jù),我們可以根據(jù)這些來分析當(dāng)時(shí)MySQL或者主機(jī)是否有異常
? ? ??
? ? ??
? ?
㈤ pt-stalk的觸發(fā)條件
? ? ??
? ? ? 在上面的示例中觸發(fā)參數(shù)是:"--function status --variable Threads_connected --threshold 2"
? ? ? 表示MySQL狀態(tài)值Threads_connected超過2時(shí)觸發(fā)數(shù)據(jù)收集。常用的觸發(fā)條件還可以使用Threads_running等
? ? ? 另外還可以使用SHOW PROCESSLIST的中的結(jié)果觸發(fā)
? ? ? 例如"--function processlist --variable State --match statistics --threshold 10"表示
? ? ? show processlist中State列的值為statistics的線程數(shù)超過10則觸發(fā)收集
? ? ??
? ? ??
? ? ??
? ?更多方法、請(qǐng)
man
pt-stalk
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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