可以方便測試終端用戶系統啟動時間;
可以模擬多種用戶類型(比如普通使用辦套件的用戶,播放 flash 視頻、播放 WMV 視頻、播放高清視頻等高端用戶)的體驗值;
可以模擬多種終端用戶的組合類型,切近真實情況;
可以實時監控所有終端用戶的行為狀態;
性能測試指標
虛擬桌面流服務器的 CPU,內存,網絡吞吐量,磁盤讀寫
云桌面系統的 CPU,內存,網絡吞吐量,存儲磁盤讀寫
云桌面系統運行程序的響應延遲時間(毫秒)
云桌面系統播放媒體(音頻,視頻)的體驗水平
設計如下圖 3 所示,STAX 解析 XML 任務文件,遠程驅動安裝好 STAF 的機器并發或者順序執行 XML 中定義的一系列任務(順序執行或者隨機執行,以及不同 workload 的比例也都可以實現),這些任務的具體內容(包括用戶的思考等待、桌面和應用程序的操作等)都由 Autoit 腳本完成,STAX 主要負責任務的調度和工作負荷的構建,其在調用外部腳本的時候能夠傳入一系列參數到 Autoit 的命令行接口中,因而既可以方便地調配虛擬用戶數的梯度增長或者并發數量,又可以控制每個虛擬用戶的行為(循環,條件判斷等)。
圖 3. 性能測試設計
查看大圖。
測試場景
如下圖 4 所示,本測試使用 ESX 創建的虛擬機來模擬瘦客戶機(也就是虛擬的終端用戶)。因而所有的虛擬機便于統一配置和管理。
圖 4. 測試場景
如圖 5 所示,該測試環境的流服務器采用基于流(Streaming)的技術把不同的操作系統或者應用程序分發到客戶端(無盤或者有盤),測試中會預先用真實的瘦客戶機執行測試,測試結果作為基準值,然后跟虛擬機的測試結果進行對比,確保結果一致性,從而保證用虛擬機模擬終端的真實性。
圖 5. 測試環境
測試準備
第一步:安裝配置
1. 先根據安裝向導安裝 STAF(默認安裝在 C:\STAF)
2. 然后下載 STAX,找一臺性能測試中的主控制臺機器 ,在其 C:\STAF 下新建目錄 services,把解壓的 stax 拷貝到 service 目錄下即可,啟動 STAFProc 進程,然后運行 C:\STAF\services\stax\STAXMon.jar ( 注意設置好 java 路徑,STAX3.4.5 直接運行 STAXMon.jar 即可打開 STAX 的程序界面 )
3. 配置 C:\STAF\bin\STAF.cfg, 在默認配置的基礎上修改幾處即可:
# Turn on tracing of internal errors and deprecated options trace enable tracepoints "error deprecated" # Enable TCP/IP connections interface ssl library STAFTCP option Secure=Yes option Port=6550 interface tcp library STAFTCP option Secure=No option Port=6500 # Set default local trust trust machine local://local level 5 # Add default service loader serviceloader library STAFDSLS |
# 需要配置的地方,*.*.*.* 可以設置為單個 IP 或者 IP 段,且每個遠程的 STAF 機器也需要配置
# to trust all machines, can also use specific IP address here for # security consideration TRUST MACHINE *.*.*.* LEVEL 5 #OPTION JVM=C:\Program Files\Java\jdk1.6.0_22\bin\java.exe SERVICE STAX LIBRARY JSTAF EXECUTE {STAF/Config/STAFRoot}/services/stax/STAX.jar OPTION J2=-Xmx384m SERVICE EVENT LIBRARY JSTAF EXECUTE {STAF/Config/STAFRoot}/services/stax/STAFEvent.jar SET MAXQUEUESIZE 10000 |
第二步:優化配置
要使 STAX 滿足高并發的性能需求,必須對 STAF/STAX 做優化配置:
########################## STAF performance tunning ################ # Increase the CONNECTIMEOUT to 30 seconds for the tcp interface, specify: INTERFACE tcp LIBRARY STAFTCP OPTION SECURE=No OPTION PORT=6500 OPTION CONNECTTIMEOUT=30000 # Increase the CONNECTTIMEOUT to 30 seconds for the ssl interface, specify: INTERFACE ssl LIBRARY STAFTCP OPTION SECURE=Yes OPTION PORT=6550 OPTION CONNECTTIMEOUT=30000 # increase the CONNECTATTEMPTS from a default of 2 attempts to 3 SET CONNECTATTEMPTS 3 |
第三步 : 編寫腳本
1. 下面需要編寫 STAX 并發調度的 XML 文件,目標如下圖所示:
圖 6. 實現 Ramp up 的 workload 圖示