percona 實(shí)用工具之pt-kill使用介紹
pt-kill 是一個(gè)優(yōu)秀的kill MySQL連接的一個(gè)工具,是percona toolkit的一部分,在因?yàn)榭臻e連接較多導(dǎo)致超過(guò)最大連接數(shù)、某個(gè)有問(wèn)題的sql導(dǎo)致mysql負(fù)載很高時(shí),都需要將一些連接kill掉,這個(gè)工具主要就是這個(gè)用途。
從show processlist 中獲取滿足條件的連接或者從包含show processlist的文件中讀取滿足條件的連接并打印或者殺掉或者執(zhí)行其他操作,這個(gè)工具在工作中實(shí)用性很高,當(dāng)服務(wù)器連接出現(xiàn)異常后第一想到的就是pt-kill,自己寫(xiě)一個(gè)腳本也可以,但是功能還是沒(méi)有pt-kill強(qiáng)大;一般我喜歡將連接本地MySQL的必要信息放在一個(gè)文件文件中,當(dāng)需要連接本地mysql時(shí)直接指定配置文件即可;
常用功能介紹
pt-kill --defaults-file xx --match-command Sleep --kill --victims all --interval 10 每隔10s 殺掉處于sleep狀態(tài)的連接數(shù);
pt-kill defaults-file xx --busy-time 60 --kill --victims all --interval 10 每隔10s 殺掉處初步runnning狀態(tài)超過(guò)60s的連接數(shù);
幾個(gè)重要參數(shù)
--daemonize 放在后臺(tái)以守護(hù)進(jìn)程的形式運(yùn)行;
--interval 多久運(yùn)行一次,單位可以是s,m,h,d等默認(rèn)是s
--victims 默認(rèn)是oldest,只殺最古老的查詢。這是防止被查殺是不是真的長(zhǎng)時(shí)間運(yùn)行的查詢,他們只是長(zhǎng)期等待。這種種匹配按時(shí)間查詢,殺死一個(gè)時(shí)間最高值。
all 殺掉所有滿足的線程
殺死所有,但最長(zhǎng)的保留不殺
action
--kill 殺掉連接并且退出
--kill-query 只殺掉連接執(zhí)行的語(yǔ)句,但是線程不會(huì)被終止
--print 打印滿足條件的語(yǔ)句
QUERY MATCHES
--busy-time 批次查詢已運(yùn)行的時(shí)間超過(guò)這個(gè)時(shí)間的線程;
--idle-time 殺掉sleep 了多少時(shí)間的連接線程,必須在--match-command sleep時(shí)才有效
更多介紹可以參考官方的文檔:https://www.percona.com/doc/percona-toolkit/2.1/pt-kill.html#cmdoption-pt-kill--interval
參數(shù)
–busy-time
運(yùn)行時(shí)間
–idle-time
空閑時(shí)間
–victims
所有匹配的連接,對(duì)應(yīng)有最久的連接
–interval
間隔時(shí)間,默認(rèn)30s,有點(diǎn)長(zhǎng),可以根據(jù)實(shí)際情況來(lái)調(diào)節(jié)
打印出來(lái)kill掉的連接
–match-command
匹配當(dāng)前連接的命令
Query
Sleep
Binlog Dump
Connect
Delayed insert
Execute
Fetch
Init DB
Kill
Prepare
Processlist
Quit
Reset stmt
Table Dump
–match-state
匹配當(dāng)前連接的狀態(tài)
Locked
login
copy to tmp table
Copying to tmp table
Copying to tmp table on disk
Creating tmp table
executing
Reading from net
Sending data
Sorting for order
Sorting result
Table lock
Updating
–match-info
使用正則表達(dá)式匹配符合的sql
–match-db –match-user –match-host
見(jiàn)名知意
常用用法
殺掉空閑鏈接
pt-kill –match-command Sleep –idle-time 5 –host –port –interval –print –kill –victims all
殺掉運(yùn)行時(shí)間超過(guò)5s的鏈接
pt-kill –match-command Query –busy-time 5 –host –port –interval –print –kill –victims all
殺掉匹配某個(gè)規(guī)則的正在運(yùn)行的sql
pt-kill –match-command Query –busy-time 5 –host –port –interval –print –kill –victims all –match-info
殺掉正在進(jìn)行filesort的sql
pt-kill –match-command Query –match-state “Sorting result” busy-time 5 –host –port –interval –print –kill –victims all
殺掉正在Copying to tmp table的sql
pt-kill –match-command Query –match-state “Copying to tmp table” busy-time 5 –host –port –interval –print –kill –victims all
相關(guān)文章
淺析刪除表的幾種方法(delete、drop、truncate)
這篇文章主要介紹了刪除表的幾種方法,需要的朋友可以參考下2014-05-05Slave memory leak and trigger oom-killer
這篇文章主要介紹了Slave memory leak and trigger oom-killer,需要的朋友可以參考下2016-07-07mysql多表聯(lián)合查詢返回一張表的內(nèi)容實(shí)現(xiàn)代碼
在使用mysql多表聯(lián)合查詢時(shí)怎樣可以做到只返回返回一張表的內(nèi)容,本文將詳細(xì)介紹,需要了解的朋友可以參考下2012-12-12mysql 大表批量刪除大量數(shù)據(jù)的實(shí)現(xiàn)方法
這篇文章主要介紹了mysql 大表批量刪除大量數(shù)據(jù)的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Mysql錯(cuò)誤Every derived table must have its own alias解決方法
這篇文章主要介紹了Mysql錯(cuò)誤Every derived table must have its own alias解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08- MySQL數(shù)據(jù)庫(kù)自身提供的主從復(fù)制功能可以實(shí)現(xiàn)數(shù)據(jù)的多處自動(dòng)備份,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的拓展,多個(gè)數(shù)據(jù)備份不僅加強(qiáng)數(shù)據(jù)的安全性,通過(guò)實(shí)現(xiàn)讀寫(xiě)分離還能進(jìn)一步提升數(shù)據(jù)庫(kù)的負(fù)載性能,這篇文章主要給大家介紹了關(guān)于在Linux系統(tǒng)下MySQL配置主從分離的相關(guān)資料,需要的朋友可以參考下2022-03-03