我想评估数据库应用程序的性能和可伸缩性。我正在寻找一种工具,该工具将允许我对数据库运行许多SQL语句,并将数据库和脚本(SQL)文件作为参数(+必要的详细信息,例如主机名,端口,登录…)。
理想情况下,它应该让我控制参数,例如模拟客户端的数量,测试持续时间,随机化变量或从列表中选择(例如SELECT FROM … WHERE value = @var,其中从命令行读取var或每次执行随机化) 。我想测试结果以保存为CSV或XML文件的形式进行分析和绘图。当然,就价格而言,我更喜欢“免费”或“演示” :-)
令人惊讶的是(至少对我来说),尽管有数十种用于Web应用程序负载测试的工具,但我找不到用于DB测试的工具!我确实看到的那些对象(例如pgbench)使用基于某些TPC方案的内置DB,因此它们可以帮助测试DBMS配置和硬件,但我无法测试MY DB!有什么建议?
我可以在Linux上使用Postgres 8.3,尽管我可以使用任何满足这些要求的DB通用工具。硬件具有32GB的RAM,而主表和索引的大小约为120GB。因此,冷高速缓存运行与热高速缓存运行(I / O与RAM)之间的响应时间比例可以为1:10。实际上,我希望请求能够平均分配,因此对我而言,对数据库的不同部分进行查询测试非常重要。
也可以通过电子邮件与我联系。谢谢!
-Shaul Dar(info@shauldar.com)
来自Apache的JMeter可以处理不同的服务器类型。我将其用于针对Web应用程序的负载测试,团队中的其他人将其用于数据库调用。可以通过多种方式对其进行配置,以获取所需的负载。它可以在控制台模式下运行,甚至可以使用不同的客户端进行集群化,以最大程度地减少客户端开销(从而篡改结果)。
这是一个Java应用程序,乍一看有点复杂。但是我们仍然喜欢它。:-)