我想通过重新执行日志文件中的实际查询来评估不同MySQL实例的性能。我知道像mysqlslap这样的工具会产生随机和自动生成的查询,但是我更愿意用实际的查询来测试系统。
为了对新系统进行基准测试,理想情况下,我将使用慢速日志或普通日志收集所有查询,然后将查询重放到新系统。
应该可以过滤查询,例如,我只想重播SELECT语句。我想知道是否有一个积极维护的过程或最佳实践,如何实现热身或基准功能。
Percona提供了一些似乎是为此目的而设计的工具。所有这些都已从目前的Percona工具包中删除。这些工具是:
使用Debian码头容器可以方便地访问较旧的Percona版本,在该版本中可以使用pt-log播放器。使用docker run -it --network="host" --name wheezy debian:wheezy /bin/bash运行容器并在其中安装遗留版本是可行的:
apt-get update
apt-get install percona-toolkit mysql-client我也尝试过percona-回放,但它似乎也不是很积极地维护。这将是一个很好的工具,但它几乎没有文档化,而且我无法找到只过滤SELECT语句的方法,因为我不想运行其他DML语句。我只看到Percona提供了一个标志来启用只读选项,但是这在普通的MySQL或AWS中是不可用的。
然而,我宁愿使用一个不依赖于未维护的工具的过程。
有什么工具可以让我做到这一点吗?过滤慢速查询日志的最佳方法是什么?如何正确地重放查询?
发布于 2021-10-22 19:03:58
我们这里使用的是https://github.com/devops-works/slowql,它的工作原理就像一种魅力。
它读取一个缓慢的查询日志并以所需的速度在服务器上重放它。不过,它并没有记录慢速的曲目日志。
https://dba.stackexchange.com/questions/218736
复制相似问题