TPC-C基准的数据库Benchmark工具

事务处理性能委员会(TPC)是创建于1988年的非盈利组织,其宗旨是为了制定事务处理和数据库性能测试基准程序的Benchmark标准规范,目前被广泛用于计算机系统和数据库性能评估。

基准程序TPC-C用于测试联机事务处理(OLTP)的性能,规范的最新版本是5.10。测试过程模拟一个真实的货物管理环境,批发公司有N个仓库,每个仓库供应M个地区,在每个地区为上千名客户提供服务。在测试启动后,N×M个终端操作员向数据库发出新订单(New-Order)、付款(Payment)、订单状态(Order-Status)、库存级别(Stock-Level)、发货(Delivery)等5类事物请求,而性能指标tpmC则代表事务在满足响应时间要求的前题下,每分钟系统处理新订单(New-Order)的数目。

面向数据库系统的TPC-C基准测试,有多种程序实现,商用软件有QUEST公司的Benchmark Factory,以及HP的 LoadRunner,但用TPC-C标准测试数据库性能,也有小巧的开源工具来帮助我们完成这样的工作。

针对Oracle的性能测试,Java编写的SwingBenchHammerora都是不错的选择。但对于Ingres和PostgreSQL等小众数据库的测试,需要其他基于JDBC驱动的通用数据库测试工具来完成。

Apache JMeter是基于Swing的系统性能和负载能力测试工具,同样也可以测试数据库的吞吐能力,并且JMeter在NetBeans 6.7中可以同Profiler工具集成使用,在IDE环境下创建并运行JMeter装载测试脚本。JMeter内置的数据库测试,可以在JMeter的多线程框架下,帮助用户分析数据库所能承载的并发用户数和负载能力,并提供图形化结果反馈,但这款功能全面的测试工具没有提供基于TPC-C基准的数据库测试功能。

作为专用的TPC-C测试工具,开源Java工具BenchmarkSQL更为适合,可以通过JDBC驱动添加各种数据源进行基准测试。工具里面内置了sqlTableCreates、sqlIndexCreates等SQL脚本,在推荐的测试条件下,使用预置脚本创建10个Warehouse,并在数据库中生成100万条测试数据,执行时间最小为1分钟,之后会生成包含5种不同操作的执行时间统计,以及最终tpmC值的结果报表。

感兴趣的用户还可以将默认的索引方式(如ISAM)更改为数据库支持的其他索引(如B树R树索引),来比较不同索引方式下事务处理的性能差异。

留下评论