我们计划测试新的DB服务器的性能。为此,我们有以下计划:
我计划使用pt-log-player来播放sql查询,并使用pt-query-digest来分析执行后从pt-log-player生成的结果文件。所以我的问题是:
pt-log-player,有什么bug或者背后的原因是什么。发布于 2016-06-21 11:53:59
1)虽然我自己更喜欢tcpdump,但我会问为什么不启用慢速日志是因为它的开销并不大。对于合理的阈值,它实际上是非常有用的。
如果您想要非常谨慎,您可以使用一个保守的long_query_time安全地启用它,然后慢慢地放弃它。该变量是动态的,因此如果您遇到问题,可以动态地更改它。另外,根据服务器的风格(例如Percona),您可以设置日志_慢的_率_限制,这正是为此目的而设计的。
另一种方法是使用tcpdump,您可以在服务器、影子服务器(如果网络设置支持它)或应用服务器上使用它。然后可以使用pt-查询摘要从其中提取查询:
tcpdump -s 65535 -x -nn -q -tttt -i any -c 1000 port 3306 > mysql.tcp.txt
pt-query-digest --type tcpdump mysql.tcp.txt这是一个非常多用途的解决方案,因此值得熟悉。
更多信息可以在https://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html上找到。
2)这只是一个假设,但是执行/重播查询的方式有很多种,所以我认为这就是放弃支持的原因。
3)如果您有查询,您还可以使用percona回放、米斯基普、系统工作台或任何其他工具来执行它们。如果你想写你自己的压力工具,我有一个网络请求回放代码的例子,可以给你一些想法。
发布于 2016-07-02 02:22:38
棘手的部分是同时执行步骤1和步骤2。如果在服务器上设置了LVM,则可以接近“瞬时”。
当您打开日志时获取数据快照的原因是,否则查询可能会因为发生的更改(插入、删除、更新等)而失败。
至于DBA拒绝打开慢吞吞的日志-嗯,他是不必要的偏执。(在我以前的工作中,在所有数千台服务器上保持缓慢登录是一个标准过程。)
一般日志具有一定的I/O影响,而且填充磁盘的风险很小,但这是可以监视的。
在我看来,Slowlog是找到性能问题的“快速修复”的最佳方法。如果DBA只打开一个小时,您可能会给他一个改进,将CPU和/或I/O的使用减少一半。(有一次,我看到CPU从100%下降到2% -这是在一个SELECT上的一行变化:WHERE DATE(col) = '...' -> WHERE col = '...')
https://dba.stackexchange.com/questions/141773
复制相似问题