日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

percona-toolkit之pt-kill:杀掉mysql查询或连接

發布時間:2025/4/5 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 percona-toolkit之pt-kill:杀掉mysql查询或连接 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要描述了percona-toolkit中pt-kill的 使用實例 ,及 一些重要參數的介紹。


歡迎轉載,請注明作者、出處。

作者:張正 blog:http://space.itpub.net/26355921? QQ:176036317 如有疑問,歡迎聯系。
?pt-kill 是一個非常簡單的 殺mysql線程和查詢的 工具。 主要是為了防止一些長的查詢 長時間占用 系統資源,而對線上業務造成影響的情況。
主要作用:
從show processlist 中獲取滿足條件的連接或者從包含show processlist的文件中讀取滿足條件的連接并打印或者殺掉或者執行其他操作。
我們這里主要用來防止某些select操作時間過長,從而影響其他線上SQL。
安裝:
安裝percona-toolkit即可
使用范例:
pt-kill --log-dsn D=testdb,t=kill_log --create-log-table --host=host2 --user=root --password=root --port=3306 --busy-time=10 --print --kill-query --match-info "SELECT|select" ?--victims all
也可使用--config寫配置文件:
pt-kill --config tmp.txt --log-dsn D=testdb,t=kill_log --create-log-table --match-info "SELECT|select" --victims all
notes: --match-info 是區分大小寫的,匹配SELECT也就意味著對select無法匹配,因此使用"SELECT|select"包含大小寫
cat tmp.txt?
host=host2
user=root
password=root
port=3306
busy-time=10
print?
kill-query
該使用范例的作用:
如果不存在testdb.kill_log表,則創建該表,然后將所有pt-kill的操作記錄到該表中。對所有查詢時間超過10秒的SELECT語句進行print顯示出來,同時會kill該query。
pt-kill 默認檢查間隔為5秒
解釋:
--log-dsn D=testdb,t=kill_log --create-log-table ?是創建testdb.kill_log表,之后將pt-kill操作的日志記錄在表中
--busy-time=10 執行時間超過10秒的
--print --kill-query ? 動作是 進行print和 kill query,除此之外的動作還有kill 連接:--kill
--match-info 'SELECT|select' ?只匹配SELECT 語句
其他一些重要的參數解釋:
--interval 運行檢查query的間隔,
--victim
oldest (默認值),只殺最老的查詢(最先發起的)。這是防止被查殺是不是真的長時間運行的查詢,他們只是長期等待。這種種匹配按時間查詢,殺死一個時間最高值。
? ? ? ? all 殺掉所有滿足的線程
? ? ? ? all-but-oldest 殺死所有,但最長的保留不殺
--busy-time 批次查詢已運行的時間超過這個時間的線程;
--idle-time 殺掉sleep 了多少時間的連接線程,必須在--match-command sleep時才有效
接下來這一組參數,是針對show processlist中相應列的 忽略 或 匹配:
--ignore-command / --match-command ?
(command有:Query、Sleep、Binlog Dump、Connect、Delayed insert、Execute、Fetch、Init DB、Kill、Prepare、Processlist、Quit、Reset stmt、Table Dump)
--ignore-db ? ? ?/ --match-db
--ignore-host ? ?/ --match-host
--ignore-info ? ?/ --match-info
(info則可以使用select、update、insert、delete來進行匹配,并可使用"|"進行多項匹配,如"select|SELECT|delete|DELETE|update|UPDATE"
--ignore-state ? / --match-state
(state類型有: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)
--ignore-user ? ?/ --match-user
Action:
--kill ? ? ? ? ? ? ? ? 殺掉連接并且退出
--kill-query ? ? ? ? ? 只殺掉連接執行的語句,但是線程不會被終止
--print ? ? ? ? ? ? ? ?打印滿足條件的語句
使用感受:
本來是想用該工具 監控多個mysql實例 ,但是發現--host 只能填寫一個,多寫了也沒作用。 所以 ?這個工具 起一個進程后,只能監控一個mysql實例, 這點有點不是太方便。個人感覺應該有方法能夠實現 多實例監控和查殺的。 ?這里就沒做深入研究了, 有知道的朋友,請留言哦。
本文轉自ITPUB博客84223932的博客,原文鏈接:percona-toolkit之pt-kill:殺掉mysql查詢或連接,如需轉載請自行聯系原博主。

總結

以上是生活随笔為你收集整理的percona-toolkit之pt-kill:杀掉mysql查询或连接的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。