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