天天看點

Unixbench控制腳本源碼分析

Unixbench是一款用于linux系統的系統性能測試工具。本文是對Unixbench入口腳本Run進行分析。

此處由于阿裡雲對markdown文法和latex文法支援的不全,是以附上segmentfault上的文章連結。

https://segmentfault.com/a/1190000023799317

一、執行調用關系

Unixbench控制腳本源碼分析

二、單測試項結果分析(結果處理為Run中的combinePassResults函數)

  1. 指定單測試項運作遍數(run pass num),通過變量testParams中的repeat參數指定:

| 命名 | 次數 | 說明 |

| ------ | ---- | ---- |

| short | 3 | 預設 |

| long | 10 | 最大 |

| single | 1 | 最小 |

  1. 先根據每一遍的結果進行排序,去掉最差的1/3的結果,可通過log檔案檢視:dump score為舍去的結果,Count score為參與算分的結果。
  2. 每一項原始結果,形如:

    COUNT|x|y|z

    其中x為分數,y為時間機關,若y為0則x代表比率,z為标簽符号。
  3. 當y為時間機關時的計算公式:

$$

\LARGE{score=e^{(\sum\limits_{i=1}^{iterations}\log(\frac {count\cdot timebase}{time}))/iterations}}

$$

  • score: 單項分數
  • iterations:剩餘有效結果的個數
  • count:每個有效結果的值
  • timebase:時間基本機關
  • time:運作的總時間

當y為0時的計算公式:

\LARGE{score=e^{(\sum\limits_{i=1}^{iterations}\log(count))/iterations}}

三、總分結果分析(結果處理為Run中的indexResults函數)

  1. index值計算公式:

\LARGE index=\frac{score * 10}{baseline}

  • score:算出的單項分數
  • baseline:記錄在pgms/index.base中的基準值
  1. 總分計算公式:

\Large SUM\_SCORE=e^{(\sum\limits_{i=1}^{tests\_num}log(\frac{score}{baseline}))/test\_num}*10

  • test_num:一個類型中的測試項的個數,可見Run中的testCats變量

繼續閱讀