本文作者詳細介紹了一種配給效能測試方法,您可以使用它判斷出現配給性能滯後的位置。
本文描述了一種配給效能測試方法,您可以使用它判斷哪些位置出現雲計算配給性能滯後。 該配給效能測試的目的是:
從使用者角度以端到端的方式測量總的配給時間。 當同時存在多個配給時,判斷配給時間的趨勢。 將整個配給時間分解為幾個部分,從而判斷哪些元件和步驟佔用的性能開銷最多。 當系統中有許多配給請求時,獲得元件級別的排隊資訊,從而説明找出瓶頸。
讓我們瞭解一些雲配給的基礎知識。
雲配給的基礎知識
雲配給是指在雲基礎架構上部署和管理 IT 資源的過程。 它由三種類型的配給組成:
虛擬機器配給:包括具現化一個或多個滿足應用程式軟硬體需求的虛擬機器。 大多數雲供應商都提供了一系列 VM 範本,這些範本具有通用的軟體和硬體配給。 例如,IBM® SmartCloud Enterprise 支援數百種使用不同處理器、記憶體和 I/O 性能選項的 VM 類型。 資源配給:將 VM 映射到雲中的物理伺服器並進行調度。 應用程式配給:在 VM 中部署專門的應用程式,並將最終使用者的請求映射到應用程式實例。
客戶還可以通過 Web 門戶和 API 對自己的資產進行配給,這些資產包括虛擬伺服器實例、映射或永久性存儲單元。
本文將重點介紹虛擬機器配給和資源配給,這是雲的兩個主要功能。 讓我們看看配給性能具有哪些挑戰。
可以規避的配給性能問題
配給過程非常複雜,因為虛擬 IT 資源和網路元素具有不可預測性。 客戶經常遇到與配給性能有關的問題,但是很難確定是由哪個或哪些因素引起的。
雲客戶遇到的一些挑戰包括:
不同的雲供應商使用不同的配給引擎。 使用者必須對配給引擎有一定的瞭解,從而能夠有效地與雲服務提供者就性能問題進行溝通,並確定問題的根源。 在運行時,可能會出現意想不到的互通性能問題,這些問題不利於實現順利的配給。 雖然可以對一些中介軟體元件進行效能測試,然後將它們集成到系統中,但是某些性能問題僅出現在與其他中介軟體交互之後,或為了滿足業務需求而採用特定的配給後才出現的。 在一個大型計算環境(如資料中心)中,IT 資源和網路的可用性、負載、輸送量都會對性能產生影響。 配給工作流可以變得很複雜並帶來性能問題。 例如,一個通用配給引擎提供的服務允許提供特定的中介軟體元件,如資料庫或應用伺服器。 實際的底層配給操作是通過一個特定的引擎腳本或元件實現的。 許多操作都包括配給服務,可以集成到不同的配給工作流中。
讓我們看一下配給效能測試方法和分析。
配給測試方法和分析流程
我曾效力過的一個團隊開發了一種測試方法,該測試方法首先描述一組狀態和操作,以便可以獨立于所用的特定配給引擎來定義整個配給流程。 圖 1 描述了這些狀態。
圖 1. 通過狀態和操作而不是使用的引擎來定義配給流程
在提交期間 (Submission Period),使用者提交一個請求並得到回應。 如果成功調用了配給工作流,那麼元件的狀態將由 「accept」 變為 「submitted」。 配給請求的狀態變為 「New」。
在資源預留期間 (Resource Reservation Period),如果無法預留所有必需的元件,那麼將無法配給完整的解決方案,並且配給流程將中止。 要預留某個元件,該元件的狀態將從 「Not Available」 變為 「Reserving」。 如果預留成功,將返回一條預留消息,並且元件的狀態更改為 「Reserved」。
在配給期間 (Provision Period),只要配給引擎已完成所有必要的步驟來設置元件,那麼將發送一條配給資訊,並且元件狀態變為 「Provisioned」。 一旦某個元件完成配給,它的所有屬性都可以通過運行的自訂日誌獲得。
在本文中,我將進行兩個測試:基準測試和負載測試。
基準測量對於實現有效的測試非常必要。 我建議測試一些具有不同類型和大小的映射。 在基準測試中,將記錄這三個階段的總配給時間的劃分,並對每個狀態變化使用時間戳。 通過按請求計算週期持續時間,您就能夠大概瞭解哪個部分佔用的時間最長。 還會收集虛擬機器的計算能力資料和作業系統版本資料,以便檢測特定映射配給的配給問題。
負載測試類比了多個配給,可能引起更長的配給時間。 在運行負載測試時,您將監視元件活動來尋找系統瓶頸。 每個元件狀態更改的時間戳記會得到記錄。 使用相同類型的映射作為配給目標可以實現更清晰的比較,並展示時間趨勢。 觀察配給持續時間隨併發配給的變化,這會説明您監視元件級的事務行為。
團隊根據使用者的端到端工作流程開發了測試腳本。 該腳本發送一個配給請求,並一直跟蹤配給狀態,以便確定配給是成功、失敗還是超時。 效能測試工具,如 Rational® Performance Tester,可用於觸發配給工作負載並捕捉使用者端資料,比如請求級別上的映射配給和配給週期。 大多數配給和管理引擎及工具都提供了資源和元件操作的本機方法。
因此,在使用此類工具時,客戶可以記錄對哪些引擎執行了哪些操作,以及調用了哪些服務/端點,然後會根據這些資料計算每個元件級別的配給週期。 使用 Python 和 VBscript 進行日誌分析和報告生成。