用percona-toolkit為MySQL收集系統(tǒng)和性能信息的教程
系統(tǒng)類(lèi)工具
1. pt-diskstats
功能介紹:
是一個(gè)對(duì)GUN/LINUX的交互式監(jiān)控工具
用法介紹:
pt-diskstats [OPTION...] [FILES]
為GUN/LINUX打印磁盤(pán)io統(tǒng)計(jì)信息,和iostat有點(diǎn)像,但是這個(gè)工具是交互式并且比iostat更詳細(xì)??梢苑治鰪倪h(yuǎn)程機(jī)器收集的數(shù)據(jù)。
使用示例:
范例1:查看本機(jī)所有的磁盤(pán)的狀態(tài)情況:
pt-diskstats
范例2:只查看本機(jī)sda2磁盤(pán)的狀態(tài)情況
pt-diskstats --devices-regex sda2
2. pt-fifo-split
功能介紹:
模擬切割文件并通過(guò)管道傳遞給先入先出隊(duì)列而不用真正的切割文件
用法介紹:
pt-fifo-split [options] [FILE ...]
pt-fifo-split讀取大文件中的數(shù)據(jù)并打印到fifo文件,每次達(dá)到指定行數(shù)就往fifo文件中打印一個(gè)EOF字符,讀取完成以后,關(guān)閉掉fifo文件并移走,然后重建fifo文件,打印更多的行。這樣可以保證你每次讀取的時(shí)候都能讀取到制定的行數(shù)直到讀取完成。注意此工具只能工作在類(lèi)unix操作系統(tǒng)。這個(gè)程序?qū)Υ笪募臄?shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)非常有用,具體的可以查看http://www.mysqlperformanceblog.com/2008/07/03/how-to-load-large-files-safely-into-innodb-with-load-data-infile/。
使用示例:
范例1:一個(gè)每次讀取一百萬(wàn)行記錄的范例:
pt-fifo-split --lines 1000000 hugefile.txt while [ -e /tmp/pt-fifo-split ]; do cat /tmp/pt-fifo-split; done
范例2:一個(gè)每次讀取一百萬(wàn)行,指定fifo文件為/tmp/my-fifo,并使用load data命令導(dǎo)入到mysql中:
pt-fifo-split infile.txt --fifo /tmp/my-fifo --lines 1000000 while [ -e /tmp/my-fifo ]; do mysql -e "set foreign_key_checks=0; set sql_log_bin=0; set unique_checks=0; load data local infile '/tmp/my-fifo' into table load_test fields terminated by '\t' lines terminated by '\n' (col1, col2);" sleep 1; done
3. pt-summary
功能介紹:
友好地收集和顯示系統(tǒng)信息概況,此工具并不是一個(gè)調(diào)優(yōu)或者診斷工具,這個(gè)工具會(huì)產(chǎn)生一個(gè)很容易進(jìn)行比較和發(fā)送郵件的報(bào)告。
用法介紹:
pt-summary
原理:此工具會(huì)運(yùn)行和多命令去收集系統(tǒng)狀態(tài)和配置信息,先保存到臨時(shí)目錄的文件中去,然后運(yùn)行一些unix命令對(duì)這些結(jié)果做格式化,最好是用root用戶(hù)或者有權(quán)限的用戶(hù)運(yùn)行此命令。
使用示例:
范例1:查看本地系統(tǒng)信息概況
pt-summary
4. pt-stalk
功能介紹:
出現(xiàn)問(wèn)題的時(shí)候收集mysql的用于診斷的數(shù)據(jù)
用法介紹:
pt-stalk [OPTIONS] [-- MYSQL OPTIONS]
pt-stalk等待觸發(fā)條件觸發(fā),然后收集數(shù)據(jù)幫助錯(cuò)誤診斷,它被設(shè)計(jì)成使用root權(quán)限運(yùn)行的守護(hù)進(jìn)程,因此你可以診斷那些你不能直接觀察的間歇性問(wèn)題。默認(rèn)的診斷觸發(fā)條件為SHOW GLOBAL STATUS。也可以指定processlist為診斷觸發(fā)條件 ,使用--function參數(shù)指定。
使用示例:
范例1:指定診斷觸發(fā)條件為status,同時(shí)運(yùn)行語(yǔ)句超過(guò)20的時(shí)候觸發(fā),收集的數(shù)據(jù)存放在/tmp/test目錄下:
pt-stalk --function status --variable Threads_running --threshold 20 --dest /tmp/test -- -uroot -pzhang@123 -h192.168.3.135
范例2:指定診斷觸發(fā)條件為processlist,超過(guò)20個(gè)狀態(tài)為statistics觸發(fā),收集的數(shù)據(jù)存放在/tmp/test目錄下:
pt-stalk --function processlist --variable State --match statistics --threshold 20 --dest /tmp/test -- -uroot -pzhang@123 -h192.168.3.135
貼一下達(dá)到觸發(fā)條件以后收集的信息:
2012_06_04_17_31_49-df 2012_06_04_17_31_49-disk-space 2012_06_04_17_31_49-diskstats 2012_06_04_17_31_49-hostname 2012_06_04_17_31_49-innodbstatus1 2012_06_04_17_31_49-innodbstatus2 2012_06_04_17_31_49-interrupts 2012_06_04_17_31_49-log_error 2012_06_04_17_31_49-lsof 2012_06_04_17_31_49-meminfo 2012_06_04_17_31_49-mutex-status1 2012_06_04_17_31_49-mysqladmin 2012_06_04_17_31_49-netstat 2012_06_04_17_31_49-netstat_s 2012_06_04_17_31_49-opentables1 2012_06_04_17_31_49-opentables2 2012_06_04_17_31_49-output 2012_06_04_17_31_49-pmap 2012_06_04_17_31_49-processlist 2012_06_04_17_31_49-procstat 2012_06_04_17_31_49-procvmstat 2012_06_04_17_31_49-ps 2012_06_04_17_31_49-slabinfo 2012_06_04_17_31_49-sysctl 2012_06_04_17_31_49-top 2012_06_04_17_31_49-trigger 2012_06_04_17_31_49-variables 2012_06_04_17_31_49-vmstat 2012_06_04_17_31_49-vmstat-overall
性能類(lèi)工具
1. pt-index-usage
功能介紹:
從log文件中讀取插敘語(yǔ)句,并用explain分析他們是如何利用索引。完成分析之后會(huì)生成一份關(guān)于索引沒(méi)有被查詢(xún)使用過(guò)的報(bào)告。
用法介紹:
pt-index-usage [OPTION...] [FILE...]
可以直接從慢查詢(xún)中獲取sql,F(xiàn)ILE文件中的sql格式必須和慢查詢(xún)中個(gè)是一致,如果不是一直需要用pt-query-digest轉(zhuǎn)換一下。也可以不生成報(bào)告直接保存到數(shù)據(jù)庫(kù)中,具體的見(jiàn)后面的示例
使用示例:
從滿(mǎn)查詢(xún)中的sql查看索引使用情況范例:
pt-index-usage /data/dbdata/localhost-slow.log --host=localhost --user=root --password=zhang@123
將分析結(jié)果保存到數(shù)據(jù)庫(kù)范例:
pt-index-usage /data/dbdata/localhost-slow.log --host=localhost --user=root --password=zhang@123 --no-report --create-save-results-database
使用--create-save-results-database會(huì)自動(dòng)生成數(shù)據(jù)庫(kù)和表來(lái)保存結(jié)果。
2. pt-pmp
功能介紹:
為查詢(xún)程序執(zhí)行聚合的GDB堆棧跟蹤,先進(jìn)性堆棧跟蹤,然后將跟蹤信息匯總。
用法介紹:
pt-pmp [OPTIONS] [FILES]
使用示例:
pt-pmp -p 21933 pt-pmp -b /usr/local/mysql/bin/mysqld_safe
3. pt-visual-explain
功能介紹:
格式化explain出來(lái)的執(zhí)行計(jì)劃按照tree方式輸出,方便閱讀。
用法介紹:
pt-visual-explain [OPTION...] [FILE...]
option請(qǐng)參閱官方網(wǎng)站,這里不一一例舉!
使用示例:
查看包含explain結(jié)果的aaa文件的范例:
pt-visual-explain aaa
查看包含查詢(xún)語(yǔ)句的aaa文件的范例:
pt-visual-explain --connect aaa --user=root --password=zhang@123
通過(guò)管道直接查看explain輸出結(jié)果的范例:
mysql -uroot -pzhang@123 -e "explain select email from test.collect_data where id=101992419" |pt-visual-explain
- Mysql數(shù)據(jù)庫(kù)性能優(yōu)化二
- Mysql數(shù)據(jù)庫(kù)性能優(yōu)化一
- Mysql性能優(yōu)化方案分享
- MySQL中distinct語(yǔ)句去查詢(xún)重復(fù)記錄及相關(guān)的性能討論
- mysql性能優(yōu)化之索引優(yōu)化
- MySQL中join語(yǔ)句的基本使用教程及其字段對(duì)性能的影響
- 安裝配置MySQLMTOP來(lái)監(jiān)控MySQL運(yùn)行性能的教程
- MySQL中使用SHOW PROFILE命令分析性能的用法整理
- MySQL中distinct與group by之間的性能進(jìn)行比較
- my.ini優(yōu)化mysql數(shù)據(jù)庫(kù)性能的十個(gè)參數(shù)(推薦)
- 19個(gè)MySQL性能優(yōu)化要點(diǎn)解析
- MySql刪除和更新操作對(duì)性能有影響嗎
- Mysql性能優(yōu)化案例 - 覆蓋索引分享
- Mysql性能優(yōu)化案例研究-覆蓋索引和SQL_NO_CACHE
- MySQL性能瓶頸排查定位實(shí)例詳解
相關(guān)文章
MySQL系列之redo log、undo log和binlog詳解
這篇文章主要介紹了MySQL系列之redo log、undo log和binlog詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12詳解MySQL中的數(shù)據(jù)類(lèi)型和schema優(yōu)化
這篇文章主要介紹了MySQL中的數(shù)據(jù)類(lèi)型和schema優(yōu)化的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)MySQL的知識(shí),感興趣的朋友可以了解下2020-10-10Centos7中MySQL數(shù)據(jù)庫(kù)使用mysqldump進(jìn)行每日自動(dòng)備份的編寫(xiě)
數(shù)據(jù)庫(kù)的備份,對(duì)于生產(chǎn)環(huán)境來(lái)說(shuō)尤為重要,數(shù)據(jù)庫(kù)的備份分為物理備份和邏輯備份。我們將使用mysqldump命令進(jìn)行數(shù)據(jù)備份。使用自動(dòng)任務(wù)進(jìn)行每日備份,下邊我們將使用mysqldump命令進(jìn)行數(shù)據(jù)備份,感興趣的朋友一起看看吧2021-07-07淺談MySQL使用笛卡爾積原理進(jìn)行多表查詢(xún)
這篇文章主要介紹了淺談MySQL使用笛卡爾積原理進(jìn)行多表查詢(xún), 文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07教你如何在MySQL命令行中使用SQL語(yǔ)句的規(guī)則
這篇文章主要介紹了教你如何在MySQL命令行中使用SQL語(yǔ)句的規(guī)則 ,需要的朋友可以參考下2014-08-08