簡介
在當今快節奏的世界中,只是完成工作是不夠的。完成工作,并且要以最簡便的方式完成工作,這才是關鍵。數據庫世界也不能幸免這種對性能的渴求?蛻粝M軌蜓杆俣行У乇4婧吞崛∑鋽祿。在許多場合設置中,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) 驅動程序,只需將db2jcc.jar文件復制到 JMeter 的 lib 目錄下即可(不用更改名稱)。
在沙箱中放沙子
在我們開始使用 JMeter 之前,我們需要建立一個有一些測試數據的數據庫。
在 DB2 的命令行處理器中輸入以下內容: create db loaddb連接loaddb數據庫,如下所示: connect to loaddb user db2admin using db2admin
建立一個表,保存我們的測試數據: create table loadtable (col1 varchar(25) not null, col2 varchar(25) not null, col3 varchar(25) not null)
用大量記錄填充表,這樣我們才能用 JMeter 來測試查詢性能。我用了一個小小的 JDBC 程序來完成這項工作,在清單1中可以看到它,該程序將在可裝入表中插入 30,000 條記錄。然后編譯并執行這段代碼,用測試數據填充可裝入表。
清單 1. 將記錄插入數據庫
現在我們有了相當數量的記錄,讓我們用 JMeter 來測試一下查詢性能。
進入 JMeter
要啟動 JMeter,需要運行<jmeter 安裝目錄 >\jakarta-jmeter\bin目錄下的jmeter.bat文件。
當啟動 JMeter 時,您會看到一個主屏幕,屏幕左邊有一個面板,其中還沒有定義測試計劃(參見圖 1)。在 JMeter 中,一個測試計劃是由一個或多個線程組構成的。線程代表模擬用戶,線程組(thread group)是一組模擬用戶。
圖 1. JMeter 的主屏幕
讓我們從建立線程組開始。方法是右擊TestPlan節點,選擇Add => Thread Group。參見圖 2。
圖 2. 添加線程組
文章來源于領測軟件測試網 http://www.kjueaiud.com/