製品&サポートサービス

pt-kill

コマンド

pt-kill [ オプション ] [ DSN ]

【主なオプション】

  • ・ [ オプション ] : -p パスワード

【主なオプション】

  • ・ --kill : 条件を満たしたクエリを削除します
  • ・ --print : 条件を満たしたクエリを表示します
  • ・ --busy-time 整数 : 整数の秒数以上かかると、トリガが引かれKILLが実行されます

目的

指定した条件を満たすクエリを自動的に取り消すことができます
KILLしたクエリは記録として残すことができます

設定ファイル

上記の必須項目を、設定ファイルにまとめておきます

# touch /etc/percona-toolkit/pt-kill.conf
# vi /etc/percona-toolkit/pt-kill.conf

・設定ファイルの作成

# touch /etc/percona-toolkit/pt-kill.conf

・設定ファイルの編集

# vi /etc/percona-toolkit/pt-kill.conf
# config for pt-kill
password=パスワード

シナリオ

コンソールを開き、以下のコマンドを実行します(実行に2秒以上かかったクエリをKILLし、出力する)

# pt-kill --busy-time 1 --kill --print

MySQLにおいて、50万のレコードがあるテーブルに対し、以下の2つのクエリを実行します

mysql> SELECT * FROM salaries LIMIT 5;
mysql> SELECT * FROM salaries;

上のクエリはすぐに実行されますが、下のクエリは1秒以上かかるためKILLされることが期待されます

結果

mysql> SELECT * FROM salaries LIMIT 5;

の実行結果

mysql> SELECT * FROM salaries LIMIT 5;
+--------+--------+------------+------------+
| emp_no | salary | from_date  | to_date    |
+--------+--------+------------+------------+
|  10001 |  60117 | 1986-06-26 | 1987-06-26 |
|  10001 |  62102 | 1987-06-26 | 1988-06-25 |
|  10001 |  66074 | 1988-06-25 | 1989-06-25 |
|  10001 |  66596 | 1989-06-25 | 1990-06-25 |
|  10001 |  66961 | 1990-06-25 | 1991-06-25 |
+--------+--------+------------+------------+
5 rows in set (0.00 sec)
mysql>  SELECT * FROM salaries;

の実行結果

mysql> SELECT * FROM salaries;
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>

前者は問題なく実行されましたが、後者は1秒以上かかったことでKILL されたことが分かります
pt-kill を実行したコンソールには、以下のような表示がでます

[root@localhost Et]# pt-kill --busy-time 1 --kill --print
# 2017-04-04T14:05:10 KILL 21 (Query 1 sec) SELECT * FROM salaries

良い点

指定時間以上の実行時間がかかるクエリを確認したり、該当のクエリを終了させる場合等に有効です

各データベース保守サービス比較
各データベース保守サービス見積依頼
MySQLサポートサービス
MySQL Editions
Oracle Cloudトータルサポート
Percona
MariaDBプロダクト・サポート・サービス
エンタープライズOSSサポート
高可用性ソリューション
OSSシステムソリューション
Navicat
SQL Diagnostic Manager for MySQL
SYNCNEL
OSS保守サポートサービス
Microsoft Azure
お問い合わせ
各MySQL保守サービス見積依頼
スマートスタイルOSSストア
Oracle Gold Partner

ページトップへ