首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

測試您的 DB2 資料庫:使用 JMeter 衡量效能

     編輯:DB2 教學

簡介

在快節奏的今天,不僅要完成工作,更要以最高效方式完成。資料庫領域同樣追求極致效能。IBM DB2 Universal Database 擁有領先的效能紀錄,但許多用戶因設計或配置缺失未能充分受益。本文介紹 Apache JMeter,一款基於 Java Swing 的桌面應用程式,專為負載測試與系統效能測量設計,支援透過 JDBC 測試關聯式資料庫,將其加入您的工具箱,協助掌握資料庫效能並進行模擬測試。

關於 Apache JMeter

JMeter 屬於 Apache Jakarta 專案,最初針對 Web 應用,後擴展支援 JDBC 測試資料庫。官網:https://jakarta.apache.org/jmeter/。JMeter 多執行緒框架允許大量執行緒並發取樣,可對 DB2 模擬繁重負載,並提供圖形化回饋。

取得 JMeter 並設置測試環境

  1. 從 官網 下載最新版(撰寫時為 1.8)。
  2. 需 Sun JDK 1.4+ 環境(IBM JDK 似乎不相容)。支援 Solaris、Linux、Windows 98/NT/2000。
  3. 將 DB2 JDBC 驅動程式複製至 <jmeter安裝目錄>/jakarta-jmeter/lib:
    • DB2 8.1 預設驅動位於 c:\program files\ibm\sqllib\java\db2java.zip,需重命名為 db2java.jar(JMeter 無法識別 .zip)。
    • 若測試 JCC 驅動,直接複製 db2jcc.jar 至 lib 目錄即可。

建立測試資料庫與數據

在 DB2 CLP 執行:

create db 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)

使用 JDBC 程式插入 30,000 筆測試記錄(列表 1):

package com.ibm.jmetertest;
import java.sql.*;
public class JMeterPopulator {
    public static void main(String[] args) {
        try {
            Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
            String url = "jdbc:db2:loaddb";
            Connection con = DriverManager.getConnection(url, "db2admin", "db2admin");
            int numOfTestRecords = 30000;
            PreparedStatement stmt = con.prepareStatement("INSERT INTO LOADTABLE VALUES(?,?,?)");
            for (int i = 0; i < numOfTestRecords; i++) {
                stmt.setString(1, "Col1Test-" + i);
                stmt.setString(2, "Col2Test-" + i);
                stmt.setString(3, "Col3Test-" + i);
                stmt.executeUpdate();
                System.out.println(i);
            }
        } catch (Exception e) { e.printStackTrace(); }
    }
}

進入 JMeter 操作

  1. 運行 <jmeter目錄>/jakarta-jmeter/bin/jmeter.bat 啟動。
  2. 主畫面左側面板為測試計劃。右鍵 TestPlan -> Add -> Thread Group 建立執行緒組(圖 1、2)。
  3. 設定執行緒組參數(圖 3):
    • 執行緒數: 模擬用戶數(例:30)。
    • Ramp-Up Period: 啟動所有執行緒前等待秒數(0 表示同時啟動)。
    • Loop Count: 測試重複次數(例:100)。

JMeter 主畫面

添加執行緒組

執行緒組設定

配置 JDBC 連線與查詢

右鍵執行緒組 -> Add -> Sampler -> JDBC Request(圖 4)。填入資料庫連線資訊:JDBC URL、驅動類別、用戶名/密碼、連線池設定、SQL 查詢語句(圖 5)。連線池維護一組連線供重複使用,Web 環境常見,可分析其優勢。

設置 JDBC 連線

指定資料庫連線資訊

添加監聽器查看結果

右鍵 JDBC Request -> Add -> Listener -> Graph Results(圖 6),即可在執行時以圖形顯示平均回應時間等指標。

指定圖形化結果

啟動測試

選單 Run -> Start(圖 7)。右上角閃爍表示測試運行中。Graph Results 即時繪製平均執行時間曲線(圖 8)。

啟動測試

測試圖形結果

進階驗證:斷言

JMeter 錯誤報告功能較弱,建議使用 斷言 驗證回應內容。先在 CLP 執行查詢確認預期結果(圖 9)。右鍵 JDBC Request -> Add -> Assertions -> Response Assertion(圖 10),添加預期文本模式(如 Col1Test-20015,圖 11)。再添加 Assertion Results 監聽器(圖 12、13)。運行測試後可見斷言通過/失敗結果(圖 14、15)。

示例查詢結果

添加斷言

添加斷言模式

添加斷言監聽器

斷言結果畫面

斷言通過

斷言失敗

測試計劃儲存與延伸

使用 File -> Save Test Plan 儲存測試計劃。JMeter 功能遠不止此,可建立複雜且有意義的測試計劃,以圖形與活動曲線快速提供系統效能可視化回饋,助您在調整企業營運條件下獲得最佳效能。

致謝

感謝 IBM 多倫多實驗室 Larry Menard 與 Robert 在 JDBC 專業領域的協助。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved