簡介html
pt-log-player是MySQL日誌回放工具,在pt2.4中被去除,由percona-playback取代。mysql
在2.1中仍是保留,若是想使用的話,須要下載2.1版本的。 sql
使用方法 session
pt-log-player [OPTION...] [DSN]
例子:併發
日誌切分工具
pt-log-player --split Thread_id --type=genlog --session-files 16 --only-select --base-dir ./sessions ./mysql.log
日誌回放測試
pt-log-player --play ./play/ --base-dir ./results -u test -p 'test3872' -h 10.75.19.132 -P 3872
要注意host、user、password以及port的順序ui
結果分析spa
使用pt-query-digest彙總結果線程
pt-query-digest ./results/*
描述
pt-log-player作兩件事情:
一、將MySQL查詢日誌分紅多個session文件
二、在指定的MySQL server上回放這些session查詢
只有session files才能被回放,慢查詢不能直接被回放,必須被改造。
session file是來自慢查詢中的一組查詢,擁有一個共同的屬性,常常是Thread_id。
這個是--split的切分依據。多個session會存放在單個session file中。相關的參數以下--session-files,--max-sessions,--base-file-name以及--base-dir。
pt-log-player使用--play回放session files,參數--threads控制併發量。每一個線程回放指定的session file。這些sessions會被回放地足夠快,由於目標是壓力測試以及負載測試。因此不建議直接在線上使用pt-log-player。
每一個--play線程將對應的結果寫入單個文件中。輸出的結果如slow log格式,故能夠使用pt-query-digest彙總這些結果。
輸出
--split和--play有兩個輸出。
--split輸出:
-- START SESSION 10
use foo
SELECT col FROM foo_tbl
--play輸出:
# Thread_id: 1107285559 Query_time: 0.000693 Schema: elink
SELECT * FROM my_data_22 WHERE `uid` = 1228640232 AND `blog_id`='493b8fe801009em6' AND `status`=1;
參考文獻
http://hi.baidu.com/ytjwt/item/26ebff16c7c6e40f8fbde40b
http://www.percona.com/doc/percona-toolkit/2.1/pt-log-player.html