我想运行一些测试来比较我们的 mysql 应用程序的几种配置。但我不想使用 sysbench 或 oltp 测试之类的东西,因为我们有一些繁重的存储过程逻辑。所以...我想针对我们的程序进行测试。
是否有任何测试应用程序/框架可用于运行自定义查询(作为选项 - 并行)并查看统计信息?像围攻网络这样的东西?我已经找到的通常使用他们自己生成的数据库模式和场景。
我可以要求我的开发人员创建一些自定义 Java 接口并使用 Siege,机器人不想增加开销或影响数字。
问候,伊戈尔。
我想运行一些测试来比较我们的 mysql 应用程序的几种配置。但我不想使用 sysbench 或 oltp 测试之类的东西,因为我们有一些繁重的存储过程逻辑。所以...我想针对我们的程序进行测试。
是否有任何测试应用程序/框架可用于运行自定义查询(作为选项 - 并行)并查看统计信息?像围攻网络这样的东西?我已经找到的通常使用他们自己生成的数据库模式和场景。
我可以要求我的开发人员创建一些自定义 Java 接口并使用 Siege,机器人不想增加开销或影响数字。
问候,伊戈尔。
Jmeter 可以使用 JDBC 进行数据库负载测试:http: //jakarta.apache.org/jmeter/usermanual/build-db-test-plan.html
我以前没有使用过 jdbc 功能,所以我不知道它是否能处理您的复杂查询。
您可以按照大多数单元测试引擎的一般原则来构建一个简单的 mySQL 单元测试引擎。
我们过去为 MS SQL 构建了类似的东西
想法如下
1)我们编写单元测试程序,并给它们赋予相同的名称前缀,如“test_”。在 MS SQL 中,我们还使用扩展属性作为元信息来描述一些特定的测试参数(就像在 NUnit 中一样,可以使用不同的测试属性)
2) 我们编写一个过程/脚本,它打开一个游标,从目录中选择所有以“test_”开头的过程名称,并在 EXEC (@procedure_name) 语句中执行它们中的每一个。如果测试失败,测试程序应该引发错误。
3) 测试执行的结果存储在一个表中。
4)为了对相同的数据运行测试并获得可预测的结果,我们有一个示例测试数据库,我们备份了一次并在每次测试执行之前从备份中恢复
如果你想要一个现在与 MySQL 5.1 一起打包的工具,你可以比尝试MySQL Slap (aka mysqlslap)做得更糟。直接来自文档的示例:
这提供了并行运行测试的选项 - 尽管使用多个客户端实现并行性可能不完全符合您的喜好。这是一个简短的描述(再次,逐字):
如果这不完全符合您的口味,您可以使用 cron 脚本在特定时间为许多用户触发 MySQL Slap,或者为许多相同配置/规范的机器,具有相同的网络路径到服务器等(后者是非常重要,因为基准测试应该消除任何可能的差异,以防止得出模糊的结论)。
如果(很可能)您正在运行以前的 MySQL 版本,此链接提供了有关如何为 5.0 编译 5.1 源的有用信息;进一步的向后移植可能是不可能的。
这是一个基本的演练。
我喜欢:
我最终使用SQLIO 对磁盘施加压力,然后编写了一些自定义查询来生成大量数据,然后对大型表进行各种计算并模拟一个负载很重但优化不佳的数据库。然后我增加了并发连接的数量,直到它死亡。