性能評(píng)估是對一個(gè)系統(tǒng)進(jìn)行各項(xiàng)檢測黔寇,并形成一份直觀的文檔滤钱,因此性能評(píng)估是通過各項(xiàng)測試來完成的觉壶。評(píng)估的一個(gè)目的是為性能的優(yōu)化提供參考,而性能優(yōu)化涉及的面很廣件缸,也很復(fù)雜铜靶,而且永無止境。對于不同的應(yīng)用程序他炊,優(yōu)化的方法會(huì)有一些區(qū)別争剿。
1 基準(zhǔn)測試程序
把應(yīng)用程序中用得最多 、 最頻繁的那部分核心程序作為評(píng)價(jià)計(jì)算機(jī)性能的標(biāo)準(zhǔn)程序痊末。稱為基準(zhǔn)測試程序( benchmark )蚕苇。
(1)整數(shù)測試程序
Dhrystone。 用 C 語言編寫凿叠, 100 條語句涩笤。包括:各種賦值語句,各種數(shù)據(jù)類型和數(shù)據(jù)區(qū)盒件,各種控制語句蹬碧,過程調(diào)用和參數(shù)傳送,整數(shù)運(yùn)算和邏輯操作 炒刁。
VAX-11/780z 的測試結(jié)果為每秒 1757 個(gè) Dhrystones 恩沽,即:1VAXMIPS= 1757 Dhrystones /s
。
(2)浮點(diǎn)測試程序
Linpack切心。用 FORTRAN 語言編寫,主要是浮點(diǎn)加法和浮點(diǎn)乘法操作片吊。用 MFPOPS(Million Floating Point Operations Per Second)表示 GFLOPS绽昏、 TFLOPS。
一個(gè)GFLOPS(giga FLOPS)等于每秒拾億(=10^9)次的浮點(diǎn)運(yùn)算俏脊, 一個(gè)TFLOPS(tera FLOPS)等于每秒萬億(=10^12)次的浮點(diǎn)運(yùn)算全谤。
(3)Whetstone 基準(zhǔn)測試程序
用 FORTRAN 語言編寫的綜合性測試程序,主要包括:浮點(diǎn)運(yùn)算 爷贫、 整數(shù)算術(shù)運(yùn)算 认然、 功能調(diào)用 、 數(shù)組變址 漫萄、 條件轉(zhuǎn)移 卷员、 超越函數(shù)。測試結(jié)果用 Kwips 表示腾务。
(4)SPEC 基準(zhǔn)測試程序
SPEC 基準(zhǔn)測試程序( System Performance Evaluation Cooperative 毕骡,系統(tǒng)性能評(píng)估聯(lián)盟)由 30 個(gè)左右世界知名計(jì)算機(jī)大廠商所支持的非盈利的合作組織,包括 IBM、AT&T未巫、BULL窿撬、Compaq、CDC叙凡、DG劈伴、DEC、Fujitsu握爷、HP跛璧、Intel、MIPS饼拍、Motolola赡模、SGI、SUN师抄、Unisys 等漓柑; SPEC 能夠全面反映機(jī)器的性能,具有很高的參考價(jià)值叨吮。 SPEC 以 AX-11/780 的測試結(jié)果作為基數(shù)辆布,當(dāng)前主要的基準(zhǔn)測試程序有 SPEC int_base_rate2000、 SPEC fp_base_rate2000和 SPEC JBB2000等茶鉴。還有基于某種數(shù)據(jù)庫運(yùn)行環(huán)境下的測試锋玲,也是可以參考的數(shù)值。在采用通用基準(zhǔn)測試程序時(shí)涵叮,要注意真實(shí)的業(yè)務(wù)流程和使用環(huán)境與通用測試基準(zhǔn)的業(yè)務(wù)流程和使用環(huán)境的異同惭蹂,這樣,基準(zhǔn)測試值才有參考價(jià)值割粮。
(5)TPC 基準(zhǔn)程序
TPC ( Transaction Processing Council 盾碗,事務(wù)處理委員會(huì))成立于 1988 年,已有 40 多個(gè)成員舀瓢,用于評(píng)測計(jì)算機(jī)的事務(wù)處理 廷雅、 數(shù)據(jù)庫處理 、 企業(yè)管理與決策支持等方面的性能 京髓。1989 年以來相繼發(fā)表的 TPC 基準(zhǔn)測試程序包括 TPC -A 航缀、 TPC -B 、 TPC -C 堰怨、 TPC -D 芥玉、 TPC -H和 TPC -W等。其中 TPC -A用于在線聯(lián)機(jī)事務(wù)處理下更新密集的數(shù)據(jù)庫環(huán)境下的性能測試备图, TPC-B 用于數(shù)據(jù)庫系統(tǒng)及運(yùn)行它的操作系統(tǒng)的核心性能測試飞傀, TPC-C 則用于在線聯(lián)機(jī)事務(wù)處理測試皇型, TPC-D 用于決策支持系統(tǒng)測試, TPC-H 是基于 TPC-D 基礎(chǔ)上決策支持基準(zhǔn)測試砸烦,還有 TPC-W 是用于電子商務(wù)應(yīng)用軟件測試弃鸦。
TPC -C 是衡量 OLTP 系統(tǒng)的工業(yè)標(biāo)準(zhǔn)。它測試廣泛的數(shù)據(jù)庫功能幢痘,包括查詢 唬格、 更新和排隊(duì)袖珍型批處理( mini-batch )事務(wù)。這一規(guī)范在關(guān)鍵領(lǐng)域十分嚴(yán)格颜说,如數(shù)據(jù)庫透明性和事務(wù)處理隔離性购岗。許多 IT 專家把 TPC -C 作為 “ 真實(shí)世界” OLTP 系統(tǒng)性能的一個(gè)很好的指示器。獨(dú)立審核員認(rèn)證基準(zhǔn)測試( benchmark )的結(jié)果门粪, TPC 還有全套的公開報(bào)告喊积。
On-Line Transaction Processing聯(lián)機(jī)事務(wù)處理過程(OLTP),也稱為面向交易的處理過程玄妈,其基本特征是前臺(tái)接收的用戶數(shù)據(jù)可以立即傳送到計(jì)算中心進(jìn)行處理乾吻,并在很短的時(shí)間內(nèi)給出處理結(jié)果,是對用戶操作快速響應(yīng)的方式之一拟蜻。
(6)Linpack 測試
Linpack 是國際上最流行的用于測試高性能計(jì)算機(jī)系統(tǒng)浮點(diǎn)性能的測試绎签。通過對高性能計(jì)算機(jī)采用高斯消元法求解一元 N 次稠密線性代數(shù)方程組的測試,評(píng)價(jià)高性能計(jì)算機(jī)的浮點(diǎn)性能酝锅。
Linpack 測試包括三類诡必, Linpack 100 、 Linpack 1000和HPL搔扁。
- Linpack 100 求解規(guī)模為 100 階的稠密線性代數(shù)方程組爸舒,它只允許采用編譯優(yōu)化選項(xiàng)進(jìn)行優(yōu)化,不得更改代碼稿蹲,甚至代碼中的注釋也不得修改扭勉。
- Linpack 1000要求求解 1000階的線性代數(shù)方程組,達(dá)到指定的精度要求场绿,可以在不改變計(jì)算量的前提下做算法和代碼上的優(yōu)化 剖效。
- HPL 即High Performance Linpack 嫉入,也叫高度并行計(jì)算基準(zhǔn)測試焰盗,它對數(shù)組大小 N 沒有限制,求解問題的規(guī)闹淞郑可以改變熬拒,除基本算法(計(jì)算量)不可改變外,可以采用其他任何優(yōu)化方法垫竞。前兩種測試運(yùn)行規(guī)模較小澎粟,已不太適合現(xiàn)代計(jì)算機(jī)的發(fā)展 蛀序。HPL 是針對現(xiàn)代并行計(jì)算機(jī)提出的測試方式。用戶在不修改任意測試程序的基礎(chǔ)上活烙,可以調(diào)節(jié)問題規(guī)模的大行炻恪(矩陣大小) 啸盏、 使用 CPU 數(shù)目 重贺、 使用各種優(yōu)化方法等來執(zhí)行該測試程序,以獲取最佳的性能 回懦。HPL 采用高斯消元法求解線性方程組气笙。HPL 測試結(jié)果是 TOP500排名的重要依據(jù)。
2 Web 服務(wù)器的性能評(píng)估
在 Web 服務(wù)器的測試中怯晕,能夠反映其性能的主要包括最大并發(fā)連接數(shù) 潜圃、 響應(yīng)延遲和吞吐量(每秒處理的請求數(shù))幾個(gè)參數(shù)。
現(xiàn)在常見的 Web 服務(wù)器性能評(píng)測方法有基準(zhǔn)性能測試 舟茶、 壓力測試和可靠性測試谭期。
- 基準(zhǔn)測試即采用前面所提到的各種基準(zhǔn)程序?qū)ζ溥M(jìn)行測試;
- 壓力測試則是采用一些測試工具(這些測試工具的主要特征就是能夠模擬足夠數(shù)量的并發(fā)操作)來測試 Web 服務(wù)器的一些性能指標(biāo)稚晚,如最大并發(fā)連接數(shù)崇堵,間接測試響應(yīng)時(shí)間,以及每秒鐘可以處理的請求數(shù)目客燕。通過這種壓力測試鸳劳,不但可以考察 Web 服務(wù)器的各項(xiàng)性能指標(biāo),而且可以找到服務(wù)器的瓶頸所在也搓,然后通過參數(shù)調(diào)整赏廓,讓服務(wù)器運(yùn)行得更高效。
IxWeb 是美國 IXIA 公司的一個(gè)有關(guān) Web 測試的解決方案傍妒,它是一個(gè)高性能業(yè)務(wù)負(fù)載生成與分析應(yīng)用系統(tǒng)幔摸,可在 TCP 和應(yīng)用層模擬現(xiàn)實(shí)世界的業(yè)務(wù)負(fù)載方案,能夠?qū)υO(shè)備進(jìn)行強(qiáng)度測試 颤练、 檢驗(yàn)轉(zhuǎn)發(fā)策略和驗(yàn)證4~7層的性能既忆。IxWeb 通過模擬用戶(客戶端)來測試 Web 服務(wù)器山上。每一個(gè) IXIA 測試儀端口都有獨(dú)立的 CPU 和內(nèi)存省有,運(yùn)行 Linux 操作系統(tǒng),具備完整的 TCP /IP協(xié)議棧淮野,每個(gè)端口可以模擬大量的 Web 客戶宇挫,每個(gè)客戶能夠產(chǎn)生大量的并發(fā)連接苛吱。它還可以通過同時(shí)模擬客戶端和服務(wù)器端,對內(nèi)容交換機(jī)等設(shè)備進(jìn)行測試器瘪。
IxWeb 能夠配置會(huì)話翠储,以模擬使用路由 绘雁、 交換和 NAT 環(huán)境中的用戶。為了進(jìn)一步測試實(shí)際應(yīng)用方案援所,IxWeb 能夠修改 TCP 參數(shù)庐舟,并提供對用戶通過諸如撥號(hào)調(diào)制解調(diào)器和 DSL 等多種接入機(jī)制聯(lián)網(wǎng)進(jìn)行仿真的功能。通過配置 “ 思考時(shí)間 ” ( Think Times 住拭,用戶操作之間的時(shí)間間隔)來對用戶的行為進(jìn)行仿真继阻,還可進(jìn)一步增加測試的真實(shí)性。
IxWeb 中 HTTP 1.0/1.1 支持的方法包括:GET 废酷、 POST 瘟檩、 PUT 、 HEAD 澈蟆、 DELETE墨辛,可以修改 HTTP 客戶端與服務(wù)器包頭規(guī)格。IxWeb 對 SSL 的支持使用戶能夠模擬訪問安全網(wǎng)站的大量 SSL 客戶端會(huì)話趴俘。IxWeb 具有生成真正的 SSL 握手和 HTTPS 功能睹簇。
IxWeb 能夠仿真成千上萬個(gè)下載大文件的 FTP 用戶及提供大量所需數(shù)據(jù)的相應(yīng)設(shè)備。IxWeb 提供了靈活的用戶配置和全面的統(tǒng)計(jì)數(shù)字寥闪,以測定同步 FTP 用戶的最大數(shù)量太惠,以及內(nèi)容交換機(jī) 、 負(fù)載均衡器 疲憋、 服務(wù)器與防火墻的吞吐量凿渊。
IxWeb 提供了廣泛翔實(shí)的實(shí)時(shí)統(tǒng)計(jì)數(shù)字及記錄日志,并可將其導(dǎo)出到標(biāo)準(zhǔn)文件格式缚柳,以便定制報(bào)告生成埃脏。測試一旦完成,即可以用包括 HTML 在內(nèi)的多種文件格式生成內(nèi)容豐富的報(bào)告秋忙。
3 系統(tǒng)監(jiān)視
系統(tǒng)監(jiān)視的目標(biāo)是為了評(píng)估系統(tǒng)性能彩掐。要監(jiān)視系統(tǒng)性能,需要收集某個(gè)時(shí)間段內(nèi)的3種不同類型的性能數(shù)據(jù):
(1)常規(guī)性能數(shù)據(jù)
該信息可幫助識(shí)別短期趨勢(如內(nèi)存泄漏)灰追。經(jīng)過一兩個(gè)月的數(shù)據(jù)收集后堵幽,可以求出結(jié)果的平均值并用更緊湊的格式保存這些結(jié)果。這種存檔數(shù)據(jù)可幫助人們在業(yè)務(wù)增長時(shí)作出容量規(guī)劃弹澎,并有助于在日后評(píng)估上述規(guī)劃的效果朴下。
(2)比較基準(zhǔn)的性能數(shù)據(jù)
該信息可幫助人們發(fā)現(xiàn)緩慢 、 歷經(jīng)長時(shí)間才發(fā)生的變化裁奇。通過將系統(tǒng)的當(dāng)前狀態(tài)與歷史記錄數(shù)據(jù)相比較桐猬,可以排除系統(tǒng)問題并調(diào)整系統(tǒng)麦撵。由于該信息只是定期收集的刽肠,所以不必對其進(jìn)行壓縮存儲(chǔ)溃肪。
(3)服務(wù)水平報(bào)告數(shù)據(jù)
該信息可幫助人們確保系統(tǒng)能滿足一定的服務(wù)或性能水平,也可能會(huì)將該信息提供給并不是性能分析人員的決策者音五。收集和維護(hù)該數(shù)據(jù)的頻率取決于特定的業(yè)務(wù)需要惫撰。
進(jìn)行系統(tǒng)監(jiān)視通常有3種方式。
一是通過系統(tǒng)本身提供的命令躺涝,如 UNIX/Liunx 中的 w 厨钻、 ps 、 last 坚嗜, Windows 中的 netstat 等夯膀;
二是通過系統(tǒng)記錄文件查閱系統(tǒng)在特定時(shí)間內(nèi)的運(yùn)行狀態(tài);
三是集成命令 苍蔬、 文件記錄和可視化技術(shù)诱建,提供直觀的界面,操作人員只需要進(jìn)行一些可視化的設(shè)置碟绑,而不需要記憶繁雜的命令行參數(shù)俺猿,即可完成監(jiān)視操作,如 Windows 的 Perfmon 應(yīng)用程序格仲。
目前押袍,已經(jīng)有些廠商提供專業(yè)化的監(jiān)視平臺(tái),將上面3種方式集成到一個(gè)統(tǒng)一的監(jiān)控平臺(tái)凯肋,進(jìn)行統(tǒng)一監(jiān)控谊惭,并提供各類分析數(shù)據(jù)和分析報(bào)表,幫助用戶進(jìn)行性能的評(píng)估和診斷侮东。如 IBM 公司提供的Tivoli 午笛、 HP公司提供的 Sitescope 等。