pt-log-player

簡介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

本站公眾號
   歡迎關注本站公眾號,獲取更多信息