系統效能評價---效能評估

hu19930613發表於2018-08-28

效能評估

    效能評估是對一個系統進行各項檢測,並形成一份直觀的文件,因此效能評估是通過各項測試來完成的。評估的一個目的是為效能的優化提供參考,而效能優化涉及的面很廣,也很複雜,而且永無止境。對於不同的應用程式,優化的方法會有一些區別。

1 基準測試程式        

    把應用程式中用得最多、最頻繁的那部分核心程式作為評價計算機效能的標準程式。稱為基準測試程式(benchmark)。

    (1)整數測試程式:Dhrystone。用 C 語言編寫,100 條語句。包括:各種賦值語句,各種資料型別和資料區,各種控制語句,過程呼叫和引數傳送,整數運算和邏輯操作。

    VAX-11/780z 的測試結果為每秒 1757個 Dhrystones,即:

1VAXMIPS=1757 Dhrystones/s

    (2)浮點測試程式:Linpack。用 FORTRAN 語言編寫,主要是浮點加法和浮點乘法操作。用 MFPOPS(Million Floating Point Operations Per Second)表示 GFLOPS、 TFLOPS。

    (3)Whetstone 基準測試程式。用 FORTRAN 語言編寫的綜合性測試程式,主要包括:浮點運算、整數算術運算、功能呼叫、陣列變址、條件轉移、超越函式。測試結果用 Kwips 表示。

    (4)SPEC 基準測試程式。SPEC 基準測試程式(System Performance Evaluation Cooperative,系統效能評估聯盟)由 30個左右世界知名計算機大廠商所支援的非盈利的合作組織,包括 IBM、AT&T、BULL、Compaq、CDC、DG、DEC、Fujitsu、HP、Intel、 MIPS、Motolola、SGI、SUN、Unisys 等;SPEC 能夠全面反映機器的效能,具有很高的參考價值。SPEC 以 AX-11/780 的測試結果作為基數,當前主要的基準測試程式有 SPEC int_base_rate 2000、SPEC fp_base_rate 2000和 SPEC JBB 2000 等。還有基於某種資料庫執行環境下的測試,也是可以參考的數值。在採用通用基準測試程式時,要注意真實的業務流程和使用環境與通用測試基準的業務流程和使用環境的異同,這樣,基準測試值才有參考價值。

    (5)TPC 基準程式。TPC(Transaction Processing Council,事務處理委員會)成立於1988年,已有 40 多個成員,用於評測計算機的事務處理、資料庫處理、企業管理與決策支援等方面的效能。1989  年以來相繼發表的 TPC  基準測試程式包括 TPC-A、TPC-B、TPC-C、TPC-D、TPC-H 和 TPC-W 等。其中 TPC-A 用於線上聯機事務處理下更新密集的資料庫環境下的效能測試,TPC-B 用於資料庫系統及執行它的作業系統的核心效能測試, TPC-C 則用於線上聯機事務處理測試,TPC-D 用於決策支援系統測試,TPC-H 是基於 TPC-D 基礎上決策支援基準測試,還有 TPC-W 是用於電子商務應用軟體測試。

    TPC-C 是衡量 OLTP 系統的工業標準。它測試廣泛的資料庫功能,包括查詢、更新和排隊袖珍型批處理(mini-batch)事務。這一規範在關鍵領域十分嚴格,如資料庫透明性和事務處理隔離性。許多 IT 專家把 TPC-C 作為“真實世界”OLTP 系統效能的一個很好的指示器。獨立稽核員認證基準測試(benchmark)的結果,TPC 還有全套的公開報告。

    (6)Linpack 測試。Linpack 是國際上最流行的用於測試高效能運算機系統浮點效能的測試。通過對高效能運算機採用高斯消元法求解一元 N 次稠密線性代數方程組的測試,評價高效能運算機的浮點效能。

    Linpack 測試包括三類,Linpack100、Linpack1000 和 HPL。Linpack100 求解規模為 100 階的稠密線性代數方程組,它只允許採用編譯優化選項進行優化,不得更改程式碼,甚至程式碼中的註釋也不得修改。Linpack1000 要求求解 1000 階的線性代數方程組,達到指定的精度要求,可以在不改變計算量的前提下做演算法和程式碼上的優化。HPL 即 High Performance Linpack,也叫高度平行計算基準測試,它對陣列大小 N沒有限制,求解問題的規模可以改變,除基本演算法(計算量)不可改變外,可以採用其他任何優化方法。前兩種測試執行規模較小,已不太適合現代計算機的發展。

    HPL 是針對現代平行計算機提出的測試方式。使用者在不修改任意測試程式的基礎上,可以調節問題規模的大小(矩陣大小)、使用 CPU 數目、使用各種優化方法等來執行該測試程式,以獲取最佳的效能。HPL 採用高斯消元法求解線性方程組。求解問題規模為 N 時,浮點運算次數為2/3′N3 -2N2。

    因此,只要給出問題規模 N,測得系統計算時間 T,峰值=計算量(2/3′N3-2N2)/ 計算時間T,測試結果以浮點運算每秒(Flops)給出。HPL 測試結果是 TOP500 排名的重要依據。

2 Web 伺服器的效能評估 

    在 Web 伺服器的測試中,能夠反映其效能的主要包括最大併發連線數、響應延遲和吞吐量(每秒處理的請求數)幾個引數。

    現在常見的 Web 伺服器效能評測方法有基準效能測試、壓力測試和可靠性測試。基準測試即採用前面所提到的各種基準程式對其進行測試;壓力測試則是採用一些測試工具(這些測試工具的主要特徵就是能夠模擬足夠數量的併發操作)來測試 Web 伺服器的一些效能指標,如最大併發連線數,間接測試響應時間,以及每秒鐘可以處理的請求數目。通過這種壓力測試,不但可以考察 Web 伺服器的各項效能指標,而且可以找到伺服器的瓶頸所在,然後通過引數調整,讓伺服器執行得更高效。

    IxWeb 是美國 IXIA 公司的一個有關 Web 測試的解決方案,它是一個高效能業務負 載生成與分析應用系統,可在 TCP 和應用層模擬現實世界的業務負載方案,能夠對裝置 進行強度測試、檢驗轉發策略和驗證 4~7 層的效能。IxWeb 通過模擬使用者(客戶端)來測試 Web 伺服器。每一個 IXIA 測試儀埠都有獨立的 CPU 和記憶體,執行 Linux 作業系統,具備完整的 TCP/IP 協議棧,每個埠可以模擬大量的 Web 客戶,每個客戶能夠產生大量的併發連線。它還可以通過同時模擬客戶端和伺服器端,對內容交換機等裝置進行測試。

    IxWeb 能夠配置會話,以模擬使用路由、交換和 NAT 環境中的使用者。為了進一步測試實際應用方案,IxWeb 能夠修改 TCP 引數,並提供對使用者通過諸如撥號調變解調器和 DSL 等多種接入機制聯網進行模擬的功能。通過配置“思考時間”(Think Times,使用者操作之間的時間間隔)來對使用者的行為進行模擬,還可進一步增加測試的真實性。

    IxWeb 中 HTTP 1.0/1.1支援的方法包括:GET、POST、PUT、HEAD、DELETE,可以修改HTTP 客戶端與伺服器包頭規格。IxWeb 對 SSL 的支援使使用者能夠模擬訪問安全網站的大量 SSL 客戶端會話。IxWeb 具有生成真正的 SSL 握手和 HTTPS 功能。

    IxWeb 能夠模擬成千上萬個下載大檔案的 FTP 使用者及提供大量所需資料的相應裝置。 IxWeb 提供了靈活的使用者配置和全面的統計數字,以測定同步 FTP 使用者的最大數量,以及內容交換機、負載均衡器、伺服器與防火牆的吞吐量。

    IxWeb 提供了廣泛翔實的實時統計數字及記錄日誌,並可將其匯出到標準檔案格式,以便定製報告生成。測試一旦完成,即可以用包括 HTML 在內的多種檔案格式生成內容豐富的報告。

3 系統監視 

    系統監視的目標是為了評估系統效能。要監視系統效能,需要收集某個時間段內的3種不同型別的效能資料:

    (1)常規效能資料。該資訊可幫助識別短期趨勢(如記憶體洩漏)。經過一兩個月的資料收集後,可以求出結果的平均值並用更緊湊的格式儲存這些結果。這種存檔資料可幫助人們在業務增長時作出容量規劃,並有助於在日後評估上述規劃的效果。

    (2)比較基準的效能資料。該資訊可幫助人們發現緩慢、歷經長時間才發生的變化。通過將系統的當前狀態與歷史記錄資料相比較,可以排除系統問題並調整系統。由於該資訊只是定期收集的,所以不必對其進行壓縮儲存。

    (3)服務水平報告資料。該資訊可幫助人們確保系統能滿足一定的服務或效能水平,也可能會將該資訊提供給並不是效能分析人員的決策者。收集和維護該資料的頻率取決於特定的業務需要。

    進行系統監視通常有 3 種方式。一是通過系統本身提供的命令,如 UNIX/Liunx 中的 w、ps、last,Windows 中的 netstat 等;二是通過系統記錄檔案查閱系統在特定時間內的執行狀態;三是整合命令、檔案記錄和視覺化技術,提供直觀的介面,操作人員只需要進行一些視覺化的設定,而不需要記憶繁雜的命令列引數,即可完成監視操作,如Windows的Perfmon 應用程式。

    目前,已經有些廠商提供專業化的監視平臺,將上面3 種方式整合到一個統一的監控 平臺,進行統一監控,並提供各類分析資料和分析報表,幫助使用者進行效能的評估和診斷。 如IBM 公司提供的Tivoli、HP公司提供的Sitescope等。

相關文章