pt-log-player

时间:2024-01-05 08:15:08

简介

pt-log-player是MySQL日志回放工具,在pt2.4中被去除,由percona-playback取代。

在2.1中还是保留,如果想使用的话,需要下载2.1版本的。

使用方法

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的顺序

结果分析

使用pt-query-digest汇总结果

pt-query-digest ./results/*

描述

pt-log-player做两件事情:

1、将MySQL查询日志分成多个session文件

2、在指定的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

相关文章