簡介
性能工程是確定並報告軟件解決方案當前性能的一門學科。它涉及模仿大量並發用戶、收集診斷數據、繪圖、進行性能分析和設計 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-bitIBM 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 AgentController (x2)
8x2 GHzIntel 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 GHzAMD 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)
WebSphereApplication
Server (x7)
2x2 GHzAMD Opteron
2 GB RAM
IBM WebSphere Application Server Network Deployment V6.1 (C88STML.tar) RPTWorkbench
4x2.8 GHzIntel XEON
4 GB RAM
IBM Rational Performance Tester V7.0 (C95J7ML.tar, C95J8ML.tar, C95J9ML.tar)未使用 RPT 的性能工程
性能工程是確定並報告軟件解決方案的當前性能的一門學科。它涉及設置 System Under Test (SUT)、模仿大量並發用戶、管理 SUT、收集診斷數據、分析收集的數據和設計 SUT 的性能改進。在達到性能目標之前,此過程將一直重復。
設置測試環境。測試環境必須能夠模擬生產環境。隨後收集的度量單位要盡可能地與開發出來的模型一樣精確。該度量單位可能像單節點 WebSphere Community Edition with DB2 Express-C 一樣簡單,或者可能是 WebSphere Application Server Extended Deployment Edition on DB2 9 的 16 節點集群。
模擬用戶負載。實際的用戶負載要處理消費者行為分析和有效的線程實現。好的工作負載模擬器需要實現隨機功能。而針對企業性能測試的出色工作負載模擬器則需要處理上千個線程和/或進程,並且必須具備良好的可伸縮性。
管理 System Under Test。在進行每次嘗試時,SUT 都必須處於相同狀態,以便產生可重復的結果。為實現這一目的,您應該重復利用 WebSphere 和 DB2 的集群、清除不同目錄中的日志文件並存儲 DB2 表空間。為了產生可重復的結果而始終如一地執行所有這些操作是一個好的實踐。
收集每台機器上的診斷數據。至少應該具有 vmstat、iOStat 和定期的 DB2 快照。必須在適當的時間使用適當的命令啟動診斷工具。為了實現進一步的分析,必須系統地整理輸出。為此,人們常常編寫一些自定義腳本。
處理數字和繪圖。這包括大量的復制粘貼處理和電子表格處理。復雜度適中的系統在繪圖和分析方面涉及的診斷數據將超過 100 份。專有的圖形解決方案常常集成到自定義腳本中,以便將數據後處理(post-process)為人類可使用的形式。
重復 N 次!執行性能測試的目的是發現性能瓶頸並進行性能改進。經過多少次嘗試才能通過用戶驗收測試呢?根據我們的經驗,一個版本可能要經過 100 次以上的嘗試。
Rational Performance Tester 是 IBM 旨在簡化性能工程的性能測試和監控的策略。在下面的小節中,將查看 RPT 如何通過模擬用戶負載獲得要繪制的結果圖形,從而簡化性能測試周期。
拓撲
首先設計測試環境的拓撲結構非常重要。典型的由 RPT 驅動的集群式 Trade6 測試環境由數據庫、 HTTP 服務器、WebSphere 部署管理器、WebSphere 應用服務器、驅動程序和 RPT 工作台組成。我們的測試環境的拓撲如下所示:
圖 1. 測試環境拓撲
最佳實踐:分隔 RPT 工作台和驅動程序機器
RPT 工作台應該安裝在不同於工作負載驅動程序機器的單獨機器上,以減少驅動程序方面的開銷
最佳實踐:分隔驅動程序機器和 Trade 集群
驅動程序的開銷很高,應該與 Trade 集群分隔開來。如果驅動程序位於運行 Trade 服務器的機器上,那麼集群的資源會出現負載失衡,如果使用的是簡單的循環負載平衡方案,那麼這可能導致性能問題。
經驗法則:CPU / 網絡寬帶比
有許多因素影響著測試環境中每個組件對另一個組件的伸縮。例如,如果工作負載非常依賴於數據庫,那麼您可以期望獲得高比率的數據庫與 WebSphere CPU 比。對於我們的測試環境,我們發現以下比率在機器之間的平衡資源利用方面非常合適:
總 Driver CPU : 總 DB2 CPU
4 : 1
總 HTTP Server CPU : 總 DB2 CPU
1 : 10
總 WAS CPU : 總 DB2 CPU
2 : 1 (對於 EJB 應用程序是 4 : 1)
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 工作台
下載 RPT 7 安裝包並運行 launchpad.exe 啟動安裝向導。
圖 2. 安裝 IBM Rational Performance Tester
選擇安裝 IBM Rational Performance Tester(包括 Agent)
如果尚未安裝 IBM Installation Manager,那麼請按照向導中的指令安裝它
在 IBM Installation Manager 打開時,請選擇安裝 IBM Rational Performance Tester 7.0.0
同意許可協議並為共享目錄和 RPT 選擇安裝路徑
選擇典型安裝並按照指令完成安裝
如果想和許多用戶一起運行測試,那麼必須獲得 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 代理控制器
將代理控制器安裝包下載到驅動程序機器上
運行安裝向導(在 Linux 系統上,應該運行 install_Linux.bin;在 Windows 系統上,應該運行 launchpad.exe,然後選擇安裝 Agent)
同意許可協議並選擇安裝路徑
選擇使用默認 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,請打開 <Agent Controller Home Dir>/config/serviceconfig.XML 並選擇 JAVA_PATH 的值。作為好的實踐,工作台使用的 Java 版本與代理控制器使用的 Java 版本應該是匹配的。
最佳實踐:增加 tcpip 端口/打開文件的最大數量
在包含代理控制器的每台機器上,可能都需要應用以下調優:
在 Window 機器上,應該提高 tcpip 端口的數量限制:
打開 regedit(Start -> Run -> regedit) 使用以下密鑰將 MaxUserPort 的值編輯為 65534:
HKEY_LOCAL_MacHINESYSTEMCurrentControlSetServicesTcpipParameters
在 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 工作區
單擊 Finish,讓 RPT 將此項目復制到工作區中。現在,工作區中應該有一個包含兩個 Trade6 測試腳本的性能測試項目:
圖 4. RPT 工作區視圖
必須對這些腳本進行以下更改,以便將它們用於您的環境:
打開 TradeScheduleTest 並展開測試,直到看見 HTTP 請求元素。更改主機和端口,使其指向您的 Trade6 web 主機。
圖 5. 浏覽 TradeScheduleTest
打開 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 性能監控計數器
要查看運作中的監控情況,請在運行測試的時候打開性能報告的 Resources 選項卡。您可以看到如下所示的圖表,上面繪制了數據庫機器上的 Idle、System、IOWait 和 User CPU 時間:
圖 12. 使用 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 上安裝監控服務器,請執行以下步驟:
將安裝包復制到機器上並運行 install.sh script
為監控服務器選擇一個安裝目錄
選擇將產品安裝到本地主機並接受許可協議
選擇您的 OS 並選擇安裝 Tivoli Enterprise Monitoring Server (TEMS)
選擇一個 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 上安裝監控代理,請執行以下步驟:
將代理安裝包復制到機器上並運行 install.sh script
為監控代理選擇安裝目錄
選擇將產品安裝到本地主機並接受許可協議
選擇您的 OS 並選擇安裝監控代理
按照指令完成安裝。
在啟動代理之前,首先必須配置它,將它連接到監控服務器。要實現這一點,請使用 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 的監控代理添加了支持,該支持將添加到監控服務器中,如下所示:
停止監控服務器:
$ /home/adm22237/ITM/bin/itmcmd server stop MORTAL_HUB
Stopping TEMS...
TEMS stopped...
將代理安裝包(包含用來將代理支持添加到監控服務器上的安裝文件)復制到監控服務器機器上並運行 install.sh script
選擇監控服務器的安裝目錄
選擇將產品安裝到本地主機並接受許可協議
選擇您的 OS 並選擇安裝 Tivoli Enterprise Monitoring Server Support for Databases
按照指令完成安裝
啟動監控服務器:
$ /home/adm22237/ITM/bin/itmcmd server start MORTAL_HUB
Starting TEMS...
TEMS started...
通過鍵入以下內容將監控代理支持添加到服務器:
$ /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 監控代理,則應該按照以下這些步驟操作:
以實例用戶(例如 mikezliu)的身份登錄
連接到數據庫並啟動監控代理:
$ 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 資源監控
這之後,可以使用 Resource 選項卡選擇要收集的計數器。
圖 14. 使用 Resource 選項卡選擇要監控的計數器
在運行測試的同時打開性能報告的 Resource 選項卡,這樣可以查看運作中的監控情況。圖 15 舉例說明了這些步驟:
圖 15. 使用 Tivoli Monitoring for Databases 實現 RPT 中的資源監控
通過右鍵單擊該圖,可以用不同的方式對其進行自定義,比如添加和移除計數器。例如,如果只想查看緩沖池命中率,那麼可以右鍵單擊該圖 -> Add/Remove Performance Counters -> Resource Monitoring Counter 並只選擇池命中率計數器。然後此圖將更新為只繪制該計數器:
圖 16. 使用 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 測試環境中收集性能度量的過程。