標籤:效能最佳化 作業系統效能測評 案頭作業系統
1.什麼是電腦效能
所謂電腦的效能(Performance)通常是指電腦的速度,它是程式執行時間的倒數。而程式執行時間是指使用者向電腦送入一個任務後,直到獲得他需要的結果這一段等待時間。
包括:
1.訪問磁碟和訪問儲存空間的時間
2.CPU 運算時間
3.I/O 動作時間
4.作業系統的開銷時間等。
2.Linux案頭作業系統效能分析意義
1.作業系統的效能直接影響了其上應用系統的效能
2.效能評估結果是使用者在作業系統選購過程中的重要參考指標
3.為開發人員最佳化作業系統的效能提供指導
4.為作業系統的評測提供依據
3.Linux案頭作業系統效能分析痛點
1.應用千差萬別
2.測試點過多
3.依賴多種因素和特徵
4.沒有針對性
5.沒有實際應用前景
4.如何評測電腦的效能
1.機器級的效能評測
機器級的效能評測,包括 CPU 和儲存空間的某些基本效能指標,電腦的可用性與有效性以及機器成本、價格與性/價比等,它是引進和購買電腦時最主要的選擇依據。
2.演算法級的效能評測
演算法級的效能評測方法主要用於並行機評測,最初大都是為了評價並行演算法的效能提出的,後來這些評測方法也被推廣到並行程式上。
3.程式級的效能評測
程式級的效能評測主要是使用一組基準測試程式(Benchmark)測試和評價電腦系統的各種效能。
5.測試程式準確度層次
1.真實程式
通過運行實際應用程式, 例如 C 語言的各種編譯器、 Tex 文本處理軟體、 CAD 設計工具 Spice等
2.核心程式
它是從實際程式中抽取少量但很關鍵的程式碼片段,並以此來評估程式效能
3.小測試程式
這些測試程式的代碼長度一般在100行之內,使用者可以根據自己的目的隨時編寫一些小段程式,並按已預知的輸出結果(如皇后問題、排序問題、求素數等)來判斷機器的效能。
4.綜合測試程式
它是首先對大量的應用程式中的操作進行統計,得到各種操作比例,再以此比例人為製造出測試程式。
6.基準測試 6.1 含義
基準測試程式用於測試和預測電腦系統的效能, 揭示不同結構機器的長處和短處,為使用者決定購買或使用哪種機器最適合他們的應用要求提供決策。基準測試程式試圖提供一個客觀、公正的評價機器效能的標準。
6.2 分類
宏觀微觀:
宏觀基準測試程式(Macro-benchmark)和微觀基準測試程式(Micro-benchmark)兩大類。 前者將電腦系統作為一個整體來測試其效能,它相對於某一應用類來比較不同的電腦系統,所以對機器買主很有用,但它不能揭示電腦系統效能好、壞的原因。後者是測試機器的某一特定方面的性質,如CPU速度、儲存空間速度、I/O速度、OS效能、網路特性等。
應用類別:
定點效能
浮點效能
Web服務效能
資料處理效能
系統軟體效能
科學與工程計算效能
6.3 主要的基準測試載入器
LMBENCH
是由SGI的Larry McVoy所維護,是一種用於測試不同 Unix 平台上 OS 開銷以及處理器、快取、主存、網路和磁碟之間資料轉送能力的可移植的基準測試程式。
Whetstone
比較不同的電腦的浮點效能而設計的綜合性基準測試程式。LMbench 著重測量以下核心組件:發送器、進程管理、通訊、連網、記憶體映射和檔案系統。
Dhrystone
主要為測試整數與邏輯運算效能而設計的綜合型基準測試程式Whetstone,Dhrystone不能預測使用者程式效能,這些基準程式的主要缺點是對編譯器比較敏感。
LinPACK
測試的基準是用全精度64位字長的子程式求解100階線性方程組的速度,測試的結果以Mflops(每秒百萬次浮點運算)作單位給出。
SPEC
原主要是測試CPU效能的,現在強調開發能反映真實應用(如實際負載等)的基準測試程式,並已推廣至客戶/伺服器計算、商業應用、I/O子系統等。
Unixbench
應用比較廣泛的Unix類作業系統效能測試工具之一,它屬於微觀基準測試程式,它主要從CPU浮點運算能力,以不同緩衝區大小拷貝不同大小檔案,管道輸送量,進程產生速度,系統調用開銷等方面來測試Linux相關效能。
Xbench
主要測試 xwindow 圖形介面的效能。
IOzone
檔案系統的評測工具,對Read,write,re-read,re-write,read backwards,read
strided,fread,fwrite,random read,pread,mmap,aio-read,aio_write 等一系列檔案I/O效能進行了評測,是十分有用的檔案系統效能分析工具。
Ltp
最大的 Linux 效能測試團體 Linux test project 開展的開源測試專案, 這個團體專門從事 Linux 效能測試研究。 這個項目收集了各種 Linux 核心測試載入器和相關資料, 它的目標就是為了通過把自動化測試引入到 Linux 核心測試以提高Linux 核心效能。
6.4 現狀和不足
Linux 基準測試程式都是微觀基準測試程式,都是在測試機器的某一特定方面的性質,分別著重於 CPU 速度、儲存空間速度、I/O 速度、網路特性等等某一方面或多個方面,偏重於硬體。把 Linux 作業系統作為一個整體,針對 Linux 的作業系統效能的宏觀基準測試程式目前還沒有。
現有的Linux測試載入器都是基於微觀基準測試程式,對於作業系統而言微觀可測點實在是太多,寫一個全面的基於自頂向下三層的全面測試載入器工作量大,並且也沒有太大實用價值。畢竟應用是千差萬別的,不利於在有限的時間內快速的得出 Linux 版本效能優劣結論。
7.效能評測方法學
如何進行效能評測,一般一個效能評測的實際解決方案應該包括以下三個方面:
1.讓被評測系統處於壓力負荷下;
2.測量系統執行有效特定任務的能力,執行特定任務的耗時,執行特定任務的 CPU 利用率;
3.基於性價比考慮進行改進。進行效能評測分析的目的是為了協助開發人員更好更深層次的理解系統, 找出系統瓶頸,並作出相應的改進。
8.三種效能評價技術
1.分析技術(modeling)
分析技術也叫建模分析,在一定假設條件下,電腦系統參數與效能指標參數之間存在著某種函數關係,按其工作負載的驅動條件列出方程,用數學方法求解。
2.類比技術(simulation)
類比技術按被評價系統的運行特性建立系統模型; 按系統可能有的工作負載特性建立工作負載模型;語言編寫類比程式,模仿被評價系統的運行;設計類比實驗,依照評價目標,選擇與目標有關因素,得出實驗值,再進行統計、分析。該技術的特點是可應用於設計中或實際應用中的系統,可與分析技術相結合,構成一個混合系統。
3.測量技術(measurement)
測量技術只能對已投入使用的系統進行測量, 通常採用不同層次的基準測試。
9.工作量選區(workload)
工作量就是類比實際工作的工作任務,一個工作量它要產生針對該被評測系統實際工作應用的典型的工作任務,並且該工作任務應該對系統產生相應的壓力負荷 ,一個好的效能評測工作量應該包括以下基本特徵。
可測量性
可反覆性
不變性
典型性
10.自頂向下分析法
1.系統層(System Level):包括處理器、記憶體、硬碟、網路等;(硬體資源)
2.應用程式層(Appalication Level):包括鎖、線程、堆、API 等;(程式資源)1
3.微結構層(Micro-Achitecture):包括資料隊列、迴圈結構、cache 最佳化等。
11.衡量Linux案頭系統效能評價的主要標準和參數
1.回應時間(Elapsed Time)
核心完成某一任務(程式)所花費的時間,如磁碟訪問、儲存空間訪問、輸入/
輸出等待。
2.CPU 時間
程式在CPU中的執行時間。以秒為單位。
3.CPU 利用率
12.衡量Linux案頭作業系統效能評價的主要標準
提供一個統一的、客觀的、公正的和可相互比較的評價電腦的標準。
1.權威性
不是自己憑空想象,要有可靠的理論及事實依據支撐,業界廣泛認可。
2.系統化
不是現有benchmark和工具的簡單組合,而是能夠系統化評估整機效能的方案。
它能夠反映出整個電腦軟體及硬體的綜合處理能力,而不單純是軟體或者硬體,也就是說同一個硬體平台上測試,能夠反映出不同作業系統效能不同,且在同一個作業系統,在不同的硬體平台上,效能測試也應該有所不同。
3.全面性
是對整機的整體效能測試,不是單純的某個硬體或者某一方面能力的測試。
4.實用
要求該方法有實用價值,參考意義。
5.公正性
不一某些利益為目的的。
13.如何確定測試負載
從微觀基準理論的角度來看,作業系統的基本績效參數實在是太多,基本績效參數測試包括 CPU、記憶體、I/O、網路、作業系統、檔案系統、編譯器、資料庫的效能指標。
從宏觀基準測試理論出發就簡單多了, 主要是要確定合適的工作量來類比有代表性的使用者作業。工作量的確定需要一定的理論依據,可以借鑒現有各種Linux 測試載入器實踐結果。
14.如何測試Linux作業系統效能
Linux 案頭作業系統是近幾年來基於 Linux 核心發展起來的面向使用者案頭應用的作業系統,核心還是基於 Linux,只是在其上添加了很多視窗程序,並且在使用者介面和友好度上作出了很大的改進,更加易用和實用。
測試 Linux 效能的關健在於測試 Linux 核心效能,而測試 Linux核心效能又可以細化成五大子系統的測試。可以針對核心這五大子系統設計工作量負載。
該文章主要是對Linux案頭作業系統效能評測-作者-肖鵬 的學習總結和歸納,感興趣的可以參考這篇學術論文
Linux案頭作業系統效能分析學習總結