使用Rational Performance Tester實現DB2 效能測試和監控

CloudSpace發表於2008-07-21

觀察如何在 IBM® DB2® for Linux®、UNIX® 和 Windows® 基準測試環境中使用 Rational® Performance Tester 作為效能測試工具。瞭解要使用的最佳實踐和一般經驗法則。Trade6 基準應用程式被用作示例工作負載。

簡介

效能工程是確定並報告軟體解決方案當前效能的一門學科。它涉及模仿大量併發使用者、收集診斷資料、繪圖、進行效能分析和設計 System Under Test (SUT) 的技術改進。在達到效能目標之前,此過程將一直重複。在典型的 DB2 WebSphere® 拓撲中,SUT 中有十臺以上的機器(否則會有上百臺)是很常見的。因此,測試迴圈通常十分單調乏味並且容易出錯。

Rational Performance Tester 是 IBM 旨在簡化效能工程的效能測試和監控策略的基礎。本文將介紹使用 IBM 測試解決方案在 WebSphere 叢集環境中測試 DB2 的最佳實踐。

目標

本文的主要目標是:

  • 描述在沒有類似 Rational Performance Tester 的效能測試解決方案的情況下,效能測試和監控中的主要難點
  • 描述作為 IBM 測試解決方案的 Rational Performance Tester 和 Tivoli Performance Monitoring 基礎設施
  • 瞭解在 DB2 WebSphere 環境中使用 Rational Performance Tester 的一些效能測試實踐和經驗法則

先決條件

以下是在測試環境中使用的機器、它們的作用、使用的硬體和安裝的軟體的清單。


表 1. 測試環境
機器 硬體 軟體
資料庫 4x1.45 GHz
Power4
16 GB RAM
  • IBM DB2 Enterprise Server Edition V9.1 Fix Pack 2 s070210 for AIX 64-bit
  • IBM Tivoli® Monitoring Server V6.1.0 Fix Pack 2 UNIX Platforms (C93SJIE.tar) + DB2 6.1.0-TIV-ITM_DB2-LA0053 Agent Support Install (6.1.0-TIV-ITM_DB2-LA0053.tar)
  • IBM Tivoli Monitoring for UNIX V6.1.0 Fix Pack 2 (C93SJIE.tar)
  • IBM Tivoli Monitoring for Databases V6.1.0 UNIX Platforms (C9393IE) + DB2 6.1.0-TIV-ITM_DB2-LA0053 Agent Support Install (6.1.0-TIV-ITM_DB2-LA0053.tar)
RPT Agent
Controller (x2)
8x2 GHz
Intel XEON
4 GB RAM
  • IBM Rational Performance Tester Agent V7.0 (C95JAML.tar, C967UML.tar)
  • IBM Tivoli Monitoring for Linux V6.1.0 Fix Pack 2 (C93SRIE.tar)
HTTP Server /
WebSphere
Deployment
Manager
2x2 GHz
AMD Opteron
4GB RAM
  • IBM WebSphere HTTP Server V6.1 (C88STML.tar)
  • IBM Edge Components V6.1 for Linux on x86-64, 64-bit support (C88XKML.tar)
  • IBM WebSphere Deployment Manager V6.1 (C88STML.tar)
WebSphere
Application
Server (x7)
2x2 GHz
AMD Opteron
2 GB RAM
  • IBM WebSphere Application Server Network Deployment V6.1 (C88STML.tar)
RPT
Workbench
4x2.8 GHz
Intel XEON
4 GB RAM
  • IBM Rational Performance Tester V7.0 (C95J7ML.tar, C95J8ML.tar, C95J9ML.tar)

未使用 RPT 的效能工程

效能工程是確定並報告軟體解決方案的當前效能的一門學科。它涉及設定 System Under Test (SUT)、模仿大量併發使用者、管理 SUT、收集診斷資料、分析收集的資料和設計 SUT 的效能改進。在達到效能目標之前,此過程將一直重複。

  1. 設定測試環境。測試環境必須能夠模擬生產環境。隨後收集的度量單位要儘可能地與開發出來的模型一樣精確。該度量單位可能像單節點 WebSphere Community Edition with DB2 Express-C 一樣簡單,或者可能是 WebSphere Application Server Extended Deployment Edition on DB2 9 的 16 節點叢集。
  2. 模擬使用者負載。實際的使用者負載要處理消費者行為分析和有效的執行緒實現。好的工作負載模擬器需要實現隨機功能。而針對企業效能測試的出色工作負載模擬器則需要處理上千個執行緒和/或程式,並且必須具備良好的可伸縮性。
  3. 管理 System Under Test。在進行每次嘗試時,SUT 都必須處於相同狀態,以便產生可重複的結果。為實現這一目的,您應該重複利用 WebSphere 和 DB2 的叢集、清除不同目錄中的日誌檔案並儲存 DB2 表空間。為了產生可重複的結果而始終如一地執行所有這些操作是一個好的實踐。
  4. 收集每臺機器上的診斷資料。至少應該具有 vmstat、iostat 和定期的 DB2 快照。必須在適當的時間使用適當的命令啟動診斷工具。為了實現進一步的分析,必須系統地整理輸出。為此,人們常常編寫一些自定義指令碼。
  5. 處理數字和繪圖。這包括大量的複製貼上處理和電子表格處理。複雜度適中的系統在繪圖和分析方面涉及的診斷資料將超過 100 份。專有的圖形解決方案常常整合到自定義指令碼中,以便將資料後處理(post-process)為人類可使用的形式。
  6. 重複 N 次!執行效能測試的目的是發現效能瓶頸並進行效能改進。經過多少次嘗試才能通過使用者驗收測試呢?根據我們的經驗,一個版本可能要經過 100 次以上的嘗試。

Rational Performance Tester 是 IBM 旨在簡化效能工程的效能測試和監控的策略。在下面的小節中,將檢視 RPT 如何通過模擬使用者負載獲得要繪製的結果圖形,從而簡化效能測試周期。

拓撲

首先設計測試環境的拓撲結構非常重要。典型的由 RPT 驅動的叢集式 Trade6 測試環境由資料庫、 HTTP 伺服器、WebSphere 部署管理器、WebSphere 應用伺服器、驅動程式和 RPT 工作臺組成。我們的測試環境的拓撲如下所示:


圖 1. 測試環境拓撲
測試環境拓撲
最佳實踐:分隔 RPT 工作臺和驅動程式機器

RPT 工作臺應該安裝在不同於工作負載驅動程式機器的單獨機器上,以減少驅動程式方面的開銷

最佳實踐:分隔驅動程式機器和 Trade 叢集

驅動程式的開銷很高,應該與 Trade 叢集分隔開來。如果驅動程式位於執行 Trade 伺服器的機器上,那麼叢集的資源會出現負載失衡,如果使用的是簡單的迴圈負載平衡方案,那麼這可能導致效能問題。

經驗法則:CPU / 網路寬頻比

有許多因素影響著測試環境中每個元件對另一個元件的伸縮。例如,如果工作負載非常依賴於資料庫,那麼您可以期望獲得高比率的資料庫與 WebSphere CPU 比。對於我們的測試環境,我們發現以下比率在機器之間的平衡資源利用方面非常合適:

  1. 總 Driver CPU : 總 DB2 CPU
    4 : 1
  2. 總 HTTP Server CPU : 總 DB2 CPU
    1 : 10
  3. 總 WAS CPU : 總 DB2 CPU
    2 : 1 (對於 EJB 應用程式是 4 : 1)
  4. Network for Drivers : 總 DB2 CPU
    當資料庫機器上有 4 個以下的 CPU 時,建議使用 100 Mb 的網路,對於超過 4 個 CPU 的機器,建議使用 1GB 的網路

設定 Trade6 環境

要在 DB2 和 WebSphere 平臺上設定 Trade6 基準,並建立和填充資料庫,請參考 “使用 DB2 UDB 設定並執行 Trade6 基準” 一文(請參閱 參考資料)。

在下面幾個小節中,將介紹如何使用 Rational Performance Tester 作為工作負載驅動程式,並瞭解一些使用者可用的監控工具。

使用 RPT 作為工作負載驅動程式

使用 IBM Rational Performance Tester 作為工作負載驅動程式可以簡化並自動化執行效能測試的過程。RPT 為使用者提供了用來建立並執行不同型別的效能測試的框架,並提供了簡化收集過程和分析效能度量過程的內建工具。

例如,RPT 中的 HTTP 協議允許使用者記錄、編輯和執行測量度量的 HTTP 效能測試,這些度量指標包括頁面命中(page hit)、頁面吞吐量和頁面響應時間。

RPT 還為諸如 IBM Tivoli Monitoring、Windows Performance Monitor 和 rstatd 之類的資源監控工具提供支援,可以使用這些工具監控測試環境中所有機器上的資源。IBM Tivoli Monitoring 提供了用來進一步具體監控應用程式和資料庫的可選元件。例如,Tivoli Monitoring for Databases 允許使用者監控 DB2 資料庫內部的多種度量指標,比如資料庫快照、表空間和緩衝池。

RPT 工作臺

該工作臺可以充當使用者配置、啟動和監控效能測試的介面。在執行效能測試時,此工作臺將部署 RPT 執行程式碼來確定目標部署機器,並使用 RPT 代理控制器執行它們。

安裝 RPT 工作臺

  1. 下載 RPT 7 安裝包並執行 launchpad.exe 啟動安裝嚮導。


    圖 2. 安裝 IBM Rational Performance Tester
    安裝 IBM Rational Performance Tester

  2. 選擇安裝 IBM Rational Performance Tester(包括 Agent)
  3. 如果尚未安裝 IBM Installation Manager,那麼請按照嚮導中的指令安裝它
  4. 在 IBM Installation Manager 開啟時,請選擇安裝 IBM Rational Performance Tester 7.0.0
  5. 同意許可協議併為共享目錄和 RPT 選擇安裝路徑
  6. 選擇典型安裝並按照指令完成安裝

如果想和許多使用者一起執行測試,那麼必須獲得 RPT 的許可金鑰。可以使用包含許可金鑰的許可伺服器或使用許可檔案獲得許可金鑰。要指向 Rational 許可伺服器或匯入許可檔案,則應該執行 IBM Rational License Key Administrator(在 All Programs -> Rational Software 中可找到)。工作臺使用的所有代理控制器都可以自動使用工作臺使用的許可金鑰。

最佳實踐:增加工作臺堆大小

對於依賴於從代理控制器和其他監控工具傳輸回工作臺的大量資料的比較大的測試而言,預設工作臺堆大小可能不夠大。如果工作臺記憶體不足,可以通過編輯位於 RPT 主目錄中的 eclipse.ini 來增加預設工作臺堆大小,並更改以下程式碼行:

-Xms40m


這指定了堆的大小。建議將最大工作臺堆大小設定為 1.5 GB:

-Xmx1500m

最佳實踐:日誌級別

建議將 RPT 排程執行元件的日誌級別設定為 “WARNING”,以減少系統開銷。
要做到這一點,請轉向 Window -> Preferences -> Logging。開啟 Loggers 選項卡並將以下元件的日誌級別更改為 “WARNING”:

com.ibm.rational.test.common.schedule.execution
com.ibm.rational.test.lt.execution

RPT 代理控制器

RPT 代理控制器必須安裝在每臺驅動程式機器上,以便為工作臺提供控制它們的方法。這允許 RPT 工作臺在這些機器上部署程式碼並執行效能測試。

安裝 RPT 代理控制器

  1. 將代理控制器安裝包下載到驅動程式機器上
  2. 執行安裝嚮導(在 Linux 系統上,應該執行 install_linux.bin;在 Windows 系統上,應該執行 launchpad.exe,然後選擇安裝 Agent)
  3. 同意許可協議並選擇安裝路徑
  4. 選擇使用預設 JVM 並完成安裝

要在 Unix/Linux 上啟動代理控制器,請執行 RAStart.sh:

$ /opt/IBM/SDP70Shared/AgentController/bin/RAStart.sh
  Starting Agent Controller
  RAServer started successfully

最佳實踐:對代理控制器使用正確的 JVM

確保代理控制器使用的是隨 RPT 一起打包的 JVM(RPT70/jdk/jre/bin/java)。要檢查代理控制器正在使用的是哪個 JVM,請開啟 /config/serviceconfig.xml 並選擇 JAVA_PATH 的值。作為好的實踐,工作臺使用的 Java 版本與代理控制器使用的 Java 版本應該是匹配的。

最佳實踐:增加 tcpip 埠/開啟檔案的最大數量

在包含代理控制器的每臺機器上,可能都需要應用以下調優:

  1. 在 Window 機器上,應該提高 tcpip 埠的數量限制:
    開啟 regedit(Start -> Run -> regedit) 使用以下金鑰將 MaxUserPort 的值編輯為 65534:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  2. 在 Unix/Linux 系統上,應該使用 ulimit(作為根使用者)增加所允許的開啟檔案的最大數量:

    $ ulimit -n 10050000

在應用調優之後,應該重啟代理控制器,如下列清單所示:

$ /opt/IBM/SDP70Shared/AgentController/bin/RAStop.sh
  RAServer stopped, pid = 27275
$ /opt/IBM/SDP70Shared/AgentController/bin/RAStart.sh
  Starting Agent Controller
  RAServer started successfully

使用 RPT 執行效能測試

部署 Trade6 效能測試專案

這裡提供了一個示例 RPT 效能測試專案(請參閱 下載)。使用效能專案中提供的指令碼,可以通過模擬的工作負載驅動 Trade6 環境,該模擬負載重複地命中 Trade6 網站的 /trade/scenario servlet。

要部署這些指令碼,請開啟 RPT 並選擇將現有專案匯入工作區。瀏覽解壓縮 TradeProject 的位置,選中它,然後選擇 Copy projects into workspace。此外,還可以單擊 Select archive file 直接指向壓縮檔案。圖 3 顯示了這些步驟:


圖 3. 將專案匯入 RPT 工作區
將專案匯入 RPT 工作區

單擊 Finish,讓 RPT 將此專案複製到工作區中。現在,工作區中應該有一個包含兩個 Trade6 測試指令碼的效能測試專案:


圖 4. RPT 工作區檢視
RPT 工作區檢視

必須對這些指令碼進行以下更改,以便將它們用於您的環境:

  1. 開啟 TradeScheduleTest 並展開測試,直到看見 HTTP 請求元素。更改主機和埠,使其指向您的 Trade6 web 主機。


    圖 5. 瀏覽 TradeScheduleTest
    瀏覽 TradeScheduleTest

  2. 開啟 TradeSchedule 並展開 User Group 1。對於要部署此效能測試的每臺驅動程式機器,可以單擊 Add new 並新增該機器。


    圖 6. 新增部署機器
    新增部署機器

最佳實踐:在效能執行期間停止問題確定

通過效能排程中的 Problem Determination 選項卡啟用問題確定,這允許代理控制器為除錯過程生成日誌。對於實際的效能執行,應該將問題確定日誌級別調整為 “None”,以減少代理控制器機器上的系統開銷,或者調整為 “Severe” 並從每個使用者組抽取一名使用者作為樣本。

最佳實踐:增加代理控制器上的 JVM 堆大小

對於大型效能測試,可能需要為代理控制器增加 JVM 堆。例如,如果將堆大小增加為 1500 MB,請雙擊代理控制器機器(在 Test Navigator 中),開啟 General Properties 選項卡,然後新增命名為 RPT_VMARGS 的值為 –Xmx1500m 的新屬性。對於 Windows,建議將最大堆大小設定為 1.5 GB,對於 Linux,建議將該值設定為 3 GB。


圖 7. 將新屬性新增到某個位置
將新屬性新增到某個位置

執行 Trade6 效能測試

要啟動效能測試,請右鍵單擊 TradeSchedule test -> Run As -> Performance test schedule。此外,可以在選中效能測試的同時按下 Alt+Shift+X, C 組合鍵。

然後工作臺會將效能測試以及所需的 RPT 庫部署到每臺驅動程式機器並執行它們。在執行測試時,可以檢視效能報告的不同頁面,從而可以動態監控測試。

圖 8 顯示了吞吐量頁面,該頁面顯示了與頁面命中率和使用者負載有關的資訊:


圖 8. 效能報告的吞吐量頁面
效能報告的吞吐量頁面

Response vs. Time 頁面顯示了每個請求的平均響應時間。圖 9 顯示了此響應時間頁面:


圖 9. 效能報告的響應時間頁面
效能報告的響應時間頁面 

RPT 中的監控工具

Rational Performance Tester 7 為三個監控工具提供了整合式支援:

  • rstatd
  • IBM Tivoli Monitoring
  • Windows Performance Monitor

建議為效能測試環境中的每臺機器至少安裝一種型別的監控工具。這樣做可以監控所有資源並杜絕任何資源瓶頸。

要啟動監控,請轉向效能排程的 Resource Monitoring 選項卡,如圖 10 所示:


圖 10. 啟動資源監控
啟動資源監控

單擊 Add New 新增要監控的新機器。然後系統會提示您確定要進行監視的主機和要使用的監控工具。

最佳實踐:同步系統時鐘

多數監控工具都基於監視器下的系統使用時間戳來收集統計資料。因此,您首先應該同步正被監控的所有系統中的系統時鐘。

在 Linux 和 AIX 系統上,可以鍵入以下內容(作為根使用者)來實現這一點:

$ ntpdate -u speedo1
  12 Apr 13:52:06 ntpdate[21596]: step time server 9.26.54.6 offset 8.096963 sec

其中 speedo1 是充當時鐘同步伺服器的機器。

Windows Performance Monitor

預設情況下,所有 Windows 機器上都安裝了 Windows Performance Monitor,可以使用它來監控各種系統資源。

rstatd

rstatd 工具用於從 Linux 和 Unix 作業系統中收集一些基本監控資料。這些資料包括:

  • 執行佇列中的作業的平均數量
  • IOWait/Idle/System/User CPU Time
  • 所有介面上可以看見的所有衝突
  • 所有上下文切換
  • 總磁碟傳輸
  • 所有介面上的所有入站/出站錯誤
  • 所有介面上的所有入站/出站包
  • 所有中斷
  • 已頁入/頁出的總 VM 頁面
  • 已轉入/轉出的總 VM 頁面

安裝 rstatd

大多數 Unix 系統上都預先安裝了 rstatd。要啟動 rstatd 守護程式,請鍵入:

$ rpc.rstatd

對於 Linux 作業系統,可以在以下位置找到 rstatd 的開源版本:http://rstatd.sourceforge.net/。 要安裝 rstatd,請鍵入以下內容:

$ tar xvf rpc.rstatd-4.0.1.tar
$ cd rpc.rstatd-4.0.1/
$ ./configure
$ make
$ make install

之後,請鍵入下列內容啟動它:

$ rpc.rstatd

要使用 rstatd 監控 RPT 中的資源,請開啟效能測試的 Resource Monitoring 選項卡,選擇使用 UNIX rstatd 監視器,然後選擇要收集的計數器。圖 11 顯示了這些步驟:


圖 11. 啟動 rstatd 效能監控計數器
啟動 rstatd 效能監控計數器

要檢視運作中的監控情況,請在執行測試的時候開啟效能報告的 Resources 選項卡。您可以看到如下所示的圖表,上面繪製了資料庫機器上的 Idle、System、IOWait 和 User CPU 時間:


圖 12. 使用 rstatd 實現 RPT 資源監控
使用 rstatd 實現 RPT 資源監控

IBM Tivoli Performance Monitoring

IBM Tivoli Monitoring 為監視器提供了更豐富的度量指標集,可以使用它們從測試環境中收集 rstatd 沒有收集的額外的效能度量指標。可以安裝不同型別的 ITM 監控代理,比如 Tivoli OS Monitoring、Tivoli Monitoring for Databases 或 Tivoli Monitoring for Applications,提供進一步的深層資源監控。

安裝 IBM Tivoli Performance Monitoring

在安裝 Tivoli Monitoring 之前,應該選擇一臺機器充當監控伺服器。對於我們的測試環境,我們選擇使用資料庫機器。

要在 Unix/Linux 上安裝監控伺服器,請執行以下步驟:

  1. 將安裝包複製到機器上並執行 install.sh script.
  2. 為監控伺服器選擇一個安裝目錄
  3. 選擇將產品安裝到本地主機並接受許可協議
  4. 選擇您的 OS 並選擇安裝 Tivoli Enterprise Monitoring Server (TEMS)
  5. 選擇一個 TEMS 名稱並完成安裝

要啟動監控伺服器,請使用 cd 命令轉向監控伺服器主目錄的 bin 目錄,並執行 itmcmd (使用您的 TEMS 名稱替換 MORTAL_HUB):

$ /home/adm22237/ITM/bin/itmcmd server start MORTAL_HUB
  Starting TEMS...
  TEMS started...

接下來應該將每臺機器上的監控代理安裝到監視器上。Tivoli OS 監控代理以及包含 Tivoli 監控伺服器安裝的大多數安裝包都已包括在內。其他監控代理,比如 Tivoli Monitoring for Databases 或 Tivoli Monitoring for Applications,可能需要單獨下載。

要在 Unix/Linux 上安裝監控代理,請執行以下步驟:

  1. 將代理安裝包複製到機器上並執行 install.sh script.
  2. 為監控代理選擇安裝目錄
  3. 選擇將產品安裝到本地主機並接受許可協議
  4. 選擇您的 OS 並選擇安裝監控代理
  5. 按照指令完成安裝。

在啟動代理之前,首先必須配置它,將它連線到監控伺服器。要實現這一點,請使用 itmcmd 命令:


清單 1. 連線到監控伺服器
$ /home/adm22237/ITM/bin/itmcmd config -A ux
  Agent configuration started...
        
  Will this agent connect to a TEMS? [YES or NO] (Default is: YES):
  TEMS Host Name (Default is: mortal): mortal
        
  Network Protocol [ip, sna, ip.pipe or ip.spipe] (Default is: ip.pipe):
        
  Now choose the next protocol from one of these:
  - ip
  - sna
  - ip.spipe
  - none
  Network Protocol 2 (Default is: none):
  IP.PIPE Port Number (Default is: 1918):
  Enter name of KDC_PARTITION (Default is: null):
        
  Configure connection for a secondary TEMS? [YES or NO] (Default is: NO):
  Enter Optional Primary Network Name or "none" (Default is: none):
  Are you installing this product into a clustered environment(Default is: NO):
  Agent configuration completed...

應該使用您的代理 ID 替換其中的 ux。此 ID 基於代理型別和 OS,並且是惟一的。要查詢代理 ID,可以使用 cinfo 命令:


清單 2. 查詢代理 ID
$ /home/adm22237/ITM/bin/cinfo –I
        
  *********** Thu Apr 12 10:25:41 EDT 2007 ******************
  User      : mikezliu     Group: build pdxdb2
  Host name : mortal       Installer Lvl: 610 / 100
  CandleHome: /home/adm22237/ITM
  ***********************************************************
  ...Product inventory
        
  a4      Monitoring Agent for i5/OS
  tms     Version: 06.10.02.00
        
  ax      IBM Tivoli Monitoring Shared Libraries
  aix513  Version: 06.10.02.00
  aix516  Version: 06.10.02.00
        
  jr      Tivoli Enterprise-supplied JRE
  aix513  Version: 400 Rel: 100
  aix516  Version: 400 Rel: 100
        
  lz      Monitoring Agent for Linux OS
  tms     Version: 06.10.00.00
        
  ms      Tivoli Enterprise Monitoring Server
  aix513  Version: 06.10.02.00
        
  nt      Monitoring Agent for Windows OS
  tms     Version: 06.10.02.00
        
  sh      Tivoli Enterprise Monitoring SOAP Server
  aix513  Version: 06.10.02.00
        
  sy      Summarization and Pruning Agent
  tms     Version: 06.10.02.00
        
  tm      Monitoring Agent for IBM Tivoli Monitoring 5.x Endpoint
  tms     Version: 06.10.02.00
        
  ud      Monitoring Agent for DB2
  aix516  Version: 06.10.00.00
  tms     Version: 06.10.00.00
        
  ui      Tivoli Enterprise Services User Interface
  aix513  Version: 06.10.02.00
  aix516  Version: 06.10.02.00
        
  ul      Monitoring Agent for UNIX Logs
  tms     Version: 06.10.02.00
        
  um      Universal Agent
  tms     Version: 06.10.02.00
        
  ux      Monitoring Agent for UNIX OS
  aix516  Version: 06.10.02.00
  tms     Version: 06.10.02.00

按照指令,在提示的時候輸入 Tivoli 監控伺服器的主機名。

根據安裝的監控代理的型別,可能需要將該代理的支援安裝到監控伺服器上。對於我們的叢集,我們為 Unix/Linux 上的 DB2 的監控代理新增了支援,該支援將新增到監控伺服器中,如下所示:

  1. 停止監控伺服器:
    $ /home/adm22237/ITM/bin/itmcmd server stop MORTAL_HUB
      Stopping TEMS...
      TEMS stopped...

  2. 將代理安裝包(包含用來將代理支援新增到監控伺服器上的安裝檔案)複製到監控伺服器機器上並執行 install.sh script.
  3. 選擇監控伺服器的安裝目錄
  4. 選擇將產品安裝到本地主機並接受許可協議
  5. 選擇您的 OS 並選擇安裝 Tivoli Enterprise Monitoring Server Support for Databases
  6. 按照指令完成安裝
  7. 啟動監控伺服器:
    $ /home/adm22237/ITM/bin/itmcmd server start MORTAL_HUB
      Starting TEMS...
      TEMS started...

  8. 通過鍵入以下內容將監控代理支援新增到伺服器:
    $ /home/adm22237/ITM/bin/itmcmd support -t MORTAL_HUB ud
      Copying cat and attr data...
      Product support installation started...
      Product support installation completed...

    其中的 ud 應該使用您的代理 ID 替換(可以使用 cinfo 命令查詢 ID)。


還應該將以下補丁應用於 Tivoli Monitoring Server 和 Tivoli Monitoring Agent,以增加對 DB2 V9 的支援:

DB2 6.1.0-TIV-ITM_DB2-LA0053 Agent Support Install (6.1.0-TIV-ITM_DB2-LA0053.tar)

要啟動代理,請使用 itmcmd 命令。根據想要啟動的代理型別,可能需要傳入額外的選項。例如,要啟動 Tivoli OS 監控代理,可以鍵入以下內容:

$ /home/adm22237/ITM/bin/itmcmd agent start ux
  Starting agent...
  Agent Started...

要啟動用於 DB2 的 Tivoli 監控代理,則應該按照以下這些步驟操作:

  1. 以例項使用者(例如 mikezliu)的身份登入
  2. 連線到資料庫並啟動監控代理:

    $ db2 connect to trade6db
                  
      Database Connection Information
                  
      Database server        = DB2/AIX64 9.1.2
      SQL authorization ID   = MIKEZLIU
      Local database alias   = TRADE6DB
                  
    $ /home/adm22237/ITM/bin/itmcmd agent -o mikezliu start ud
      Starting agent...
      Agent Started...

要使用 Tivoli 監控 RPT 中的資源,請開啟效能測試的 Resource Monitoring 選項卡,選擇使用 IBM Tivoli Monitoring,然後指定監控伺服器的主機名:


圖 13. 啟動 Tivoli 資源監控
啟動 Tivoli 資源監控

這之後,可以使用 Resource 選項卡選擇要收集的計數器。


圖 14. 使用 Resource 選項卡選擇要監控的計數器
使用 Resource 選項卡選擇要監控的計數器

在執行測試的同時開啟效能報告的 Resource 選項卡,這樣可以檢視運作中的監控情況。圖 15 舉例說明了這些步驟:


圖 15. 使用 Tivoli Monitoring for Databases 實現 RPT 中的資源監控
使用 Tivoli Monitoring for Databases 實現 RPT 中的資源監控

通過右鍵單擊該圖,可以用不同的方式對其進行自定義,比如新增和移除計數器。例如,如果只想檢視緩衝池命中率,那麼可以右鍵單擊該圖 -> Add/Remove Performance Counters -> Resource Monitoring Counter 並只選擇池命中率計數器。然後此圖將更新為只繪製該計數器:


圖 16. 使用 Tivoli Monitoring for Databases 實現 RPT 中的資源監控
使用 Tivoli Monitoring for Databases 實現 RPT 中的資源監控 

最佳實踐彙總

規劃測試環境拓撲

RPT 工作臺和驅動程式機器:RPT 工作臺應該安裝在不同於工作負載驅動程式的單獨機器上

驅動程式機器:驅動程式的系統開銷很高,應該獨立於測試下的系統。

RPT 工作臺

工作臺堆大小:對於較大的測試,應該增加預設工作臺堆大小

日誌級別:對於實際效能執行,不應該將 RPT 排程執行元件的日誌級別設定為 “WARNING” 以上

代理控制器

代理控制器的 JVM:代理控制器應該使用與 RPT 打包在一起的 JVM

Linux/UNIX 上的開啟檔案的最大數量:增加允許開啟檔案的最大數量

Windows 上的 tcpip 埠的最大數量:增加允許的 tcpip 埠的最大數量

執行 RPT 效能測試

問題確定:在效能執行期間,應該將問題確定日誌級別調整為 “None”,或者調整為 “Severe” 並從每個使用者組中抽取一名使用者作為樣本。

代理控制器上的 JVM 堆疊的堆大小:對於大型測試,需要增加代理控制器上啟動的 JVM 堆疊的堆大小

資源監控

系統時鐘:測試環境下的系統中的所有機器都應該有彼此同步的系統時間,以便資源監控使用正確時間戳

結束語

本文描述瞭如何使用 IBM Rational Performance Tester 作為 DB2 環境中的效能測試和監控工具。RPT 提供了幫助使用者執行效能測試的多種工具,從對監控工具的內建支援,到允許使用者編寫和執行他們自己的工作負載驅動程式指令碼。使用 RPT 作為端到端效能測試工具可以極大提高生產率,簡化效能測試過程以及從 DB2 測試環境中收集效能度量的過程。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-406670/,如需轉載,請註明出處,否則將追究法律責任。

相關文章