Tivoli Application Manager for Transactions 實現可用性和響應時間管理:案例研究
轉自http://www.ibm.com/developerworks/cn/webservices/ws-itcamtransaction/
一個股票交易公司為終端使用者提供了股票交易服務。終端使用者通過 Web 瀏覽器訪問股票交易服務,比如 Internet Explorer 和 Firefox,然後執行以下操作:登入/登出系統、檢視最新的股票報價、在股票帳戶和他們的銀行帳戶之間轉帳,買進/售出股票並查詢交易歷史。
圖 1 展示了交易系統的架構。股票交易服務依賴於圖 1 所示的三個服務 —— 客戶資訊管理服務、股票報價/買入/賣出服務,以及轉帳服務。後兩種服務由外部提供商提供,因此,不受該股票交易公司的 IT 部門的管理。
股票交易公司要想減少使用者投訴並保持使用者忠實度,服務的可用性和股票交易系統的響應時間是至關重要的。具體來講,存在下面幾個需求:
- 應當對實際使用者所體驗的可用性和響應時間進行監視。無論任何時候,只要服務質量降低到預定義的閾值,都應當及時將問題報告給 IT 部門。
- IT 部門可以主動監視系統可用性和響應時間,並在使用者報告之前發現問題。
- 當察覺到上面提到的問題時,應當可以很輕鬆地將問題與特定的元件或互動隔離。
基本上,有兩種不同的方法可以監視應用程式的可用性和響應時間,第一種方法是對真實的終端使用者的事務進行監視,另一種是主動監視。真實的終端使用者事務監視將監視由終端使用者觸發的事務;而主動監視將通過記錄並回放事務來模擬真實的終端使用者的體驗(如果他們在當時執行了一個事務的話),從而對事務進行監視。
ITCAM for Transactions 7.1 提供了一個全面的解決方案來滿足 SOA 環境中對服務可用性和響應時間管理的需求,並且同時支援真實的終端使用者事務監視和主動監視。ITCAM for Transactions 是一個構建在 IBM Tivoli Monitoring 框架之上的代理集合,具體包括:
- Web Response Time (WRT) 代理實時監視真實的終端使用者可用性和響應時間體驗。
- Robotic Response Time (RRT) 代理使用記錄的回放指令碼主動監視服務可用性和響應時間。
- 當出現與可用性和響應時間有關的問題時,Transaction Collector (TC) 代理和 Transaction Reporter (TR) 代理將隔離問題並使用事務拓撲圖進行診斷。
服務可用性和響應時間是從事務的角度進行監視的。在本文的場景中,典型的事務例子包括股票買進、股票報價、轉帳,等等。下面的圖 2 展示瞭解決方案架構。
圖 2. ITCAM for Transactions 架構
要執行本文的步驟來演示如何構建這個完整的解決方案,至少需要使用 6 臺機器(機器 M1 到 M6)。
您需要按照以下方式配置基礎環境:
- 在機器 M1 上安裝 Tomcat 5.5,然後將 StockCenterProject.war 部署到這個 Tomcat。
- 在機器 M2 上安裝 Tomcat 5.5,並將 BankFundService.war 部署到這個 Tomcat。
- 在機器 M3 上安裝 WebSphere Application Server 6.1,並將 TradeSystem.war 部署到這個 WebSphere Application Server。
- 在機器 M4 上安裝 DB2 8.5 或更高版本,並建立客戶資訊資料庫。
我們在此使用 Tomcat 而不是使用 WebSphere 託管 Stock Exchange Center 和 Bank 應用程式的原因是它們都是外部服務,應用伺服器的型別並不重要。
ITCAM 解決方案產品應當按照以下方法進行安裝和配置:
- 安裝 ITM 6.2, ITCAM for Transactions – 在機器 M5 上安裝 AMC 代理和 TR 代理。
- 安裝 ITCAM for Transactions – 在機器 M3 上安裝 WRT 代理和 TC 代理。
- 安裝 ITCAM for Transactions – 在 M6 上安裝 RRT 代理。
假設您具有基本的 ITM 知識。如果對它們不熟悉的話,請參考 “術語” 部分,並參考 ITM 資訊中心瞭解詳細內容。
WRT 代理通過觀察來自網路卡的 HTTP 請求/響應來監視真實的終端使用者的事務可用性和響應時間。您首先需要將 HTTP URL 對映到有意義的業務事務,然後建立 ITM Situations 來定義閾值。要完成這些任務,需要執行以下步驟:
通過單擊工具欄上的 Application Management Configuration 圖示,開啟 Application Management Configuration Editor (AMCE)。
- 定義 Stock Trade 事務以捕捉 HTTP 請求/響應,URL 類似 *TradeSystem*,如圖 3 和圖 4 所示:
圖 3. 定義 Stock Trade 事務的過濾器
圖 4. 定義 Stock Trade 事務的 Reporting 模式
- 建立一個 Profile 來包含剛剛定義的事務,然後將 Minimum Response Time 設定為 2 秒,如圖 5 所示,然後將 profile 釋出給 WRT 代理。
圖 5. 建立 profile
- 單擊 OK 以確認修改並關閉 AMCE 視窗。
- 通過單擊工具欄上的 Situation Editor 圖示開啟 Situation 視窗。
- 建立如圖 6 所示的場景。當應用程式中超過 10% 的事務變慢(長於 2 秒),那麼這個場景就會被觸發。
圖 6. 建立場景
當出現與響應時間有關的問題後,您首先會收到事件通知,這是由您定義的場景觸發的,如圖 7 所示。
在 Transactions 工作空間中,我們可以看到具體的變慢的事務。顯然,從下面的圖 8 中,您會看到出現問題的事務是 /TradeSystem/TradeSysCall
在 AMC 工作空間中,可以看到企業環境中的所有應用程式的完整狀態。可以從圖 9 中看到,最慢的事務 /TradeSystem/TradeSysCall 被 Web Response Time 代理和 Transaction Reporter 代理同時捕獲。在後面的小節中,您將看到如何將問題與 Transaction Reporter 代理隔離。
我們可以使用 Rational Performance Tester (RPT) 來記錄事務並使用 RRT 代理來回放這些事務,從而執行主動監視。當為我們回放的事務定義好閾值後,我們就可以在出現效能問題時收到警告事件,並在問題影響到真實的終端使用者之前採取修復措施。
RPT 是一個效能測試工具,用於識別是否存在系統效能瓶頸以及引起瓶頸的原因,您可以使用它的記錄功能來記錄希望進行監視的事務。在安裝 RPT 後,您就可以開始記錄事務並將指令碼上傳到 AMC 了。這些指令碼應當根據真實的終端使用者的使用情況進行記錄。
在本文中,我們將記錄一個名為 BuyStock 的 RPT 指令碼,從而模擬一個真實的終端使用者在我們的股票交易系統中執行一些主要操作的情景,比如登入、檢視股票價格、將資金從銀行轉到股票帳戶,以及購買股票。這個指令碼類似圖 10 所示:
在記錄好 RPT 指令碼後,您可以將它們上傳到 AMC 並定義一個 profile 來回放它們。如圖 11 所示,您可以定義一個名為 StockApp 的 profile,每 15 分鐘回放一次指令碼 BuyStock,然後為其定義一個效能閾值。該閾值應當根據平均體驗值或服務水平協議定義。Min Response Time Threshold 屬性用於定義該閾值,在這裡我們將事務閾值設定為 10.0 秒。
圖 11. 用於 RPT 指令碼回滾的 Profile 定義
當您在 RRT 代理上回滾了 RPT 指令碼後,就可以從 AMC 代理工作空間中檢視事務響應時間資料。該工作空間列出了在我們的整個環境中進行監視的所有應用程式。當應用程式的響應時間慢於 Min Response Time Threshold,它的 Overall Status 將被修改為 Warning 或 Critical,如圖 12 所示:
當我們注意到 BuyStock 應用程式的 Overall Status 變為 critical 時,我們可以連線到相應的 RRT 代理來檢視此應用程式的詳細資訊,例如,我們可以向下鑽取此應用程式的事務和子事務,以找出最慢的事務和子事務。
可以從圖 13 中看到,指令碼 BuyStock 的響應時間被分解為包含在該指令碼中的每個子事務的響應時間。您可以看到 TradeResult 是最慢的事務。在我們的股票交易系統中,TradeResult 的任務就是將交易請求提交到後端系統並將交易結果反應給終端使用者。要找出引起事務響應時間變慢的因素,我們可以使用 Transaction Tracking 代理來幫助我們分離問題。
當我們找到響應時間最慢的事務後,可以使用 TC 代理和 TR 代理來向下鑽取該事務並分離可能引起效能下降問題的元件,比如 web 應用伺服器、資料庫或後端 web 服務。
1. 在上下文中從 AMC 工作空間啟動到 Transaction Reporter 工作空間
轉到 AMC 工作空間並展開 Applications 節點,找到 BuyStock 項,單擊它,隨後我們可以看到在 Transactions 表中有兩個項,一個用於 RRT 代理,另一個用於 TR 代理。右鍵單擊 Transaction Reporter 代理項的連結錨點;當彈出一個選單後,選擇 Transaction Topology 選項,如圖 14 所示,它將連結到 Transaction Reporter Agent 的 Transaction Topology 工作空間。
2. 在 Transaction Reporter 工作空間中分離問題
在此工作空間中,我們看到了 Buy Stock 事務的完整拓撲。從圖 15 的拓撲中可以看到,fundCall 節點上有一個紅色箭頭,它表示正是該節點使 Buy Stock 事務變慢。通過進行分析,fundCall 的響應時間就是用於呼叫 Bank 服務的響應時間。因此,造成效能下降的根本原因是因為 Bank 服務的響應時間較慢,這屬於外部服務問題。隨後我們可以要求 Bank 服務的提供商處理它。
本文描述了在 SOA 環境中用於解決典型響應時間變慢問題的基於 ITCAM for Transactions 的解決方案,並展示瞭如何部署和配置它。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780828/viewspace-665650/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- IBM Tivoli Storage ManagerIBM
- 使用Python獲取DNS解析時間和響應時間PythonDNS
- 業務響應時間和資料庫效能資料庫
- IBM Tivoli Storage Manager介紹IBM
- HTML5+CSS3實現的響應式垂直時間軸HTMLCSSS3
- TSM(Tivoli Storage Manager)的管理命令介面不能登陸,解決方法
- TPS和響應時間之間是什麼關係
- 並行查詢對於響應時間的影響實驗並行
- 使用Spring實現反應式事務(Reactive Transactions)SpringReact
- curl命令檢視響應時間
- “企業應急響應和反滲透”之真實案例分析
- RabbitMQ實戰:可用性分析和實現MQ
- Tivoli Network Manager Entry Edition的安裝
- curl 請求獲取響應時間
- 流程分析響應時間的確定
- SOA 案例研究:安全性和管理場景
- The partner transaction manager has disabled its support for remote/network transactions.REM
- LoadRunner中90%響應時間的理解
- 淺談App響應時間最佳化APP
- Oracle 執行 DDL 長時間無響應Oracle
- 選擇代理IP,穩定時間和響應速度是關鍵
- Laravel 之巢狀事務 transactions 實現Laravel巢狀
- 案例研究: 調優 WebSphere Application Server V7 效能WebAPPServer
- 專案管理案例研究(轉)專案管理
- AVIX方法和時間研究軟體
- IBM Tivoli Storage Manager V6.2 的增強功能IBM
- OpenKruise 如何實現應用的可用性防護?UI
- Vue 響應式實現原理Vue
- 使用httpstat測試網站響應時間HTTP網站
- Apache 記錄請求響應時間日誌Apache
- ngnix使用超時響應時間配置避坑一例
- javascript實現時間器JavaScript
- 自己實現一個VUE響應式--VUE響應式原理Vue
- 基於Mybatis-Plus實現自動化操作建立時間和修改時間MyBatis
- wnr for Mac計時和時間管理工具Mac
- Timeout 時間已到。在操作完成之前超時時間已過或伺服器未響應。伺服器
- 時間管理的意識和層次
- 轉~timesten系列七:配置高可用性的TT,同時實現和cache和後臺oracle整合Oracle