简介
在当今快节奏的世界中,只是完成工作是不够的。完成工作,并且要以最简便的方式完成工作,这才是关键。数据库世界也不能幸免这种对性能的渴求。客户希望能够迅速而有效地保存和提取其数据。在许多场合设置中,IBM 的 ® DB2® Universal DatabaseTM都拥有领先的性能跟踪记录,领先于众多的数据库竞争对手。
不幸的是,由于数据库或者配置中的某些设计缺陷,许多 DB2 用户可能无法获得 DB2 性能的所有益处。有许多关于 DB2 性能调整的文章和论文,DB2 中也有许多能够进行深入分析的好工具。我将在这篇文章中介绍一个工具 —— Apache 的 JMeter,这是另外一个可以添加到您的工具箱中的工具,它可以帮助您了解数据库的性能,还能帮助您进行模拟测试。
关于 Apache JMeter
JMeter 是 Apache Jakarta 项目麾下的一个产品。JMeter 是基于 JavaTMSwing 的桌面应用程序,是为进行负载测试、测量系统性能而设计的。最初,它是为测试 Web 应用程序而设计的。但是它后来进行了扩展,现在您已经可以用它来测试关系数据库了(通过 JDBCTM)。在 JMeter 的官方站点http://jakarta.apache.org/jmeter/上,您可以了解关于它的更多内容。
利用 JMeter,您可以确保您的数据库可以满足某些指标(例如能够处理一定数量的并发用户)。模拟测试是成功项目的关键。JMeter 可以针对 DB2 模拟出繁重的负载。这可以通过 JMeter 的多线程框架来实现。JMeter 的多线程框架允许大量线程进行并发采样。正如您将在本文后面看到的,JMeter 能为您提供图形化的反馈。
获得 JMeter 并设置您的测试环境
您可以从http://jakarta.apache.org/builds/jakarta-jmeter/release/下载 JMeter 的最新发行版。在我撰写这篇文章时,最新的 JMeter 版本是 1.8。JMeter 要求在 Sun 的 JDK1.4(或者更高)环境中工作。IBM JDK(指当前版本)似乎与 JMeter 不兼容。JMeter 已经在各种 UNIX® 变体 (包括 Solaris 和 Linux) 和 Windows®(98®、NT® 和 2000®)上通过了测试。
为了方便我们对 DB2 进行的 JDBC 测试,需要把 DB2 的 JDBC 驱动程序复制到<jmeter 安装目录>\jakarta-jmeter\lib目录下。对于 DB2 8.1 ,在默认安装情况下,DB2 驱动程序的位置是c:\program files\ibm\sqllib\java\db2java.zip。奇怪的是,如果 DB2 的 JDBC 驱动程序以 zip 文件命名,JMeter 将找不到 DB2 的 JDBC 驱动程序。要解决这个问题,您必须将文件名更改为.JAR文件。您可以把 lib 目录中的文件改名为db2java.jar。另一方面,如果想测试 DB2 8.1 Java Common Client (JCC) 驱动程序,只需将db2jclearcase/" target="_blank" >cc.jar文件复制到 JMeter 的 lib 目录下即可(不用更改名称)。
在沙箱中放沙子
在我们开始使用 JMeter 之前,我们需要建立一个有一些测试数据的数据库。
在 DB2 的命令行处理器中输入以下内容: create db loaddb清单 1. 将记录插入数据库
现在我们有了相当数量的记录,让我们用 JMeter 来测试一下查询性能。
进入 JMeter
要启动 JMeter,需要运行<jmeter 安装目录 >\jakarta-jmeter\bin目录下的jmeter.bat文件。
当启动 JMeter 时,您会看到一个主屏幕,屏幕左边有一个面板,其中还没有定义测试计划(参见图 1)。在 JMeter 中,一个测试计划是由一个或多个线程组构成的。线程代表模拟用户,线程组(thread group)是一组模拟用户。
让我们从建立线程组开始。方法是右击TestPlan节点,选择Add => Thread Group。参见图 2。