製品&サポートサービス

pt-query-digest

コマンド

pt-query-digest [ オプション ] [ ファイル名 ] [ DSN ]

【主なオプション】

  • ・ --type : どのログを読ませるか。デフォルトは slowlog です。他には binlog や tcpdump 等があります
  • ・ --group-by : SQLのものと同じです
  • ・ --limit : SQLのものと同じです

目的

Slowクエリログの集計結果を表示します

シナリオ

Slowクエリログは、デフォルトでは10秒以上のクエリが記録されるようになっていますが、my.cnf を0秒以上で記録するように変更し、いくつかクエリを実行します

my.cnf に追記

long_query_time = 0

記録されたSlowクエリログを pt-query-digest に読み込ませます

結果

実行すると、以下のように標準出力されます

query-digest

①Slowクエリの統計情報を見ることができます

②Slowクエリのプロファイル情報を見ることができます
ここでは、1つ目のクエリが大きくレスポンスに時間がかかっていることが分かります

以降は、各クエリごとの統計情報を見ることができます

# Query 1: 0.00 QPS, 0.01x concurrency, ID 0x1A7D93EB17B6A968 at byte 4429
# This item is included in the report because it matches --limit.
# Scores: V/M = 2.25
# Time range: 2017-04-04 10:51:33 to 13:40:11
# Attribute    pct   total     min     max     avg     95%  stddev  median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count         66       6
# Exec time     66    120s     10s     29s     20s     27s      7s     24s
# Lock time     80     1ms   107us   814us   233us   799us   255us   125us
# Rows sent      0       0       0       0       0       0       0       0
# Rows examine   0       0       0       0       0       0       0       0
# Query size    69     408      68      68      68      68       0      68
# String:
# Databases    test
# Hosts        localhost
# Users        root
# Query_time distribution
#   1us
#  10us
# 100us
#   1ms
#  10ms
# 100ms
#    1s
#  10s+  ################################################################
# Tables
#    SHOW TABLE STATUS FROM `test` LIKE 'articles'\G
#    SHOW CREATE TABLE `test`.`articles`\G
LOAD DATA LOCAL INFILE ""/tmp/19_01_articles.txt"" INTO TABLE articles\G

良い点

ユーザや接続元ごとの、時間帯指定による集計を行う事ができるので、Slowクエリログを分析するのに最適です

ページトップへ