在量測系統效能當中,有兩項數據重要:時間(time)、比率(rate)。時間指的是反應時間(response time);比率指的是工作處理量,通常是單位時間的交易量、單位時間的回應次數,或者說是throughput。其實一個是從使用者的角度來觀看,另一個是從管理者的角度來觀看。
比率的量測中以MIPS為單位,什麼是MIPS?MIPS即Millions of instructions per second,每秒條百萬指令,通常是用來測試CPU(而CPU不太會用頻率Hz為基準比較)。要注意的是MIPS也不一定準確,因為CPU有區分RISC和CISC兩種,所以用一件工作來比較,有可能產生不同效能結果。
系統效能(System Performance)是一件很複雜的事情,因為系統包含多個軟體與硬體,要量測更是困難(使用benchmark),就算我們得到其結果,要解釋其效能結果更不是一件容易的事情。
Benchmark從量測的性質來看,可以分為兩大類:粗糙基準(coarse-grain benchmark),細微基準(fine-grain benchmark)。另外,以系統角度來看可以分為四個階層(hierarchy),由內而外分別是。
- Basic Operations(最內層)
加減法運算,測量CPU之類。對系統效能量測實用性低。 - Toy Benchmark
用一些難解的問題(puzzle)計算。 - Kernels
主要是一些程式的片段,或者函數之類。測量系統某部分的效能。 - Real Programs(最外層)
最趨於真實程式的測量,也是對系統的效能量測實用性最高的。(有點廢話...)
常用的benchmark有下列單位制訂:(中文看看就好,沒有官方的中文名字,而且翻譯也怪怪的)
- Transaction Processing Performance Council (交易處理效能機構),簡稱TPC。
有TPC-C, TPC-H, TPC-R, TPC-W - Standard Performance Evaluation Corporation(標準性能評估機構),簡稱SPEC。
有SPECxxxx, SPECweb
- Load Testing(負載測試)
模擬實際的使用情形,取得測試結果,看看是不是符合要求。 - Stress Testing(壓力測試)
在最糟的情況下,對服務施加最大負載量。看看是不是能正常運作。 - Spike Testing(突波測試)
施加比平均負載高出好幾倍的量,通常施加的時間為一段小週期。
沒有留言:
張貼留言