• 沒有找到結果。

研究方法與設計

4.1 虛擬機伺服器效能參數模型建立

本節要找出一個可描述 VM 負載的模型;而 VM 的負載與相關參數有因果關係,

要描述 VM 的負載行為,可以嘗試調整不同的參數,並測量其負載,再進行迴歸 分析以找出一個可描述它們之間關係的數學模型。

4.1.1 虛擬機負載與效能參數

電腦系統負載有許多種類型,例如 CPU 運算負載、GPU 運算負載、記憶體、磁 碟、網路通訊等資料讀寫傳輸負載;本研究專注於 VM 的 CPU 運算負載與記憶 體資料傳輸負載,CPU 運算負載通常以單位時間內做到多少次運算為衡量,例如 MOPS (million operations per second,每秒百萬次運算次數),視運算內容的不同而 有不同的數值範圍;記憶體資料傳輸負載則通常以單位時間內做到多少資料傳輸 量為指標,例如 MB/s (megabyte per second,每秒百萬位元組),常見數值範圍有 數十到數百 MB/s。

一台 VMH 上通常有多台 VM,這些 VM 共用相同的實體資源,因此需要對 每台 VM 所能使用的資源進行一些限制,才不至於超出實體資源的負荷;通常這 樣的限制在大多數的 VMM 之中是可調整的。例如可設定某台 VM 只能使用 1 顆 CPU 核心的 70% 資源,並限制它的磁碟讀寫速度最高只能到 30MB/s。本研究實 作中選用其中兩個影響 VM 資源利用狀況的參數:

• 控制 VM 的 CPU 利用率上限:此參數可明確地限制 VM 對於 CPU 資源的消 耗程度並影響 VM 的效能,以符合各種使用者不同的需求,如付費越多的租 用者可享受越多的 CPU 資源。舉例而言,可設定 VM 最高只能使用 10% 的

CPU 運算資源或允許它使用全部 100% 的 CPU 運算資源。在不同的平台有 不同的實作方式,例如在 Linux cgroups 的 cpu.cfs_quota_us 設定中,數值常 見範圍為 1000-100000,代表 1%-100%;在 Xen Credit Scheduler 的 cap 則是 1-100,意義相同。本研究將此參數定義為 u1

• 控制 VM 的 CPU 使用權重:此參數可規範當多台 VM 共用一顆 CPU 核心 時,哪些 VM 有較高的使用優先權,而哪些 VM 的使用優先權較低,也會 造成 VM 之間的效能不同。例如在 Linux cgroups 的 cpu.shares 設定中,數值 常見範圍為 1-65535;在 Xen Credit Scheduler 的 weight 之中也是相同。假設 VM0 設為 512,VM1 設為 256,則代表 VM0 的使用 CPU 優先權為 VM1 的 兩倍範圍。本研究將此參數定義為 u2

以 u1 代表控制 VM 的 CPU 利用率上限,以 u2 代表控制 VM 的 CPU 使用權重;

再依照公式(3.1)所提到的 VM 負載模型,負載 LV(v)獲取的公式可描述為(4.1)。

LV(v) = f (u1, u2) (4.1)

4.1.2 基因表達程式規劃染色體編碼

依據公式(4.1),VM 負載模型可由 u1, u2 參數描述,此模型需在 GEP 表示為染色 體。我們設定頭長度為 7、尾長度為 8、總長度為 15 的染色體,而這個染色體代 表的是一個負載的模型,其中所採用的運算子如表4.1。例如公式(4.2)即是一個負 載模型,其染色體結構與樹狀型態可見圖4.1。

LV(v) = ln((1/u2) + ((u1× (−0.3)) × (u1× (−0.2)))) (4.2)

為了使 GEP 迴歸在本問題上有較好的表現,根據多次調效測試後,發現染色體 長度太短,模型難以達到較好的精確度;長度太長,模型精確度無法有效提升且 增加計算複雜度。

表 4.1: GEP 迴歸所使用之運算子 Name Definition Addition (x + y) Subtraction (x− y) Multiplication (x∗ y) Division (x/y) Floating-point remainder mod(x, y) Power pow(x, y) Square root sqrt(x) Exponential exp(x)

10x pow(10, x)

Natural logarithm ln(x) Logarithm of base 10 log(x) Floor f loor(x) Ceiling ceil(x) Absolute value abs(x)

Inverse 1/x

Negation −x

No operation x x to the power of 2 x2 Cube root x1/3 Minimum of 2 inputs min(x, y) Maximum of 2 inputs max(x, y) Average of 2 inputs avg(x, y) Complement (1− x)

4.1.3 基因表達程式規劃模型衡量

迴歸分析會試圖從一個問題的輸入輸出之中找出相對應的合理關係並描述為模 型。在此問題的輸入輸出就是由模型 f 所影響,但實際上 f 可能不存在或難以 推導出;因此我們針對一台 VMH 上唯一的 VM 執行工作,設定各種 u1, u2 參數 的不同組合並量測 VMM 排程下所導致的負載狀況,最後蒐集出 n 筆參數與負載 的對應資料為一個集合 S ={⟨u1i, u2i, LV(v)⟩|i = 1, . . . , n},其中 u1i, u2i, LV(v)

+

Inv *

u2 * *

u1 -0.3 u1 -0.2

ln

Head Tail

ln + Inv * u2 * * u1 -0.3 u1 -0.2 u2 u2 u2 u1

圖 4.1: GEP 染色體編碼示意圖

第 i 筆資料的 u1, u2 與 VM 負載值,再將集合 S 套入迴歸分析。目的是從中找出 一個模型 ˜f,能在相同輸入下,獲得近似模型 f 的輸出,以求出 LV(v)的估計值 L˜V(v),如公式(4.3)(4.4),ϵ 為可接受的誤差值。

L˜V(v) = ˜f (u1, u2) (4.3)

|f(u1, u2)− ˜f (u1, u2)| < ϵ (4.4) 而蒐集的資料筆數 n 要夠大,才足以分析出準確的模型,可能需要達數千筆;並 以(4.5)的公式 MSE 作為成本函數,來衡量模型套用至整個集合 S 的誤差程度,且 要求這樣的誤差必須小於一定的值。

MSE = 1 n

n i=1

(f (u1, u2)− ˜f (u1, u2))2 (4.5)

模型建立流程如圖4.2。

相關文件