引用:
作者eddie1
我想他的意思是說如果VM要在筆電上達到"實體CPU數量>vCPU數量",會是一個艱難的決定...
|
這....說實話並不是這個意思....
因為,到目前為止,還有很多人以為 CPU核心越多,速度越快 , 所以CPU要買就買核心最多
速度就越快(到目前為止,仍然有許多廠商都拿這個方便說法來推銷)
而事實上並不是如此!! 不過再扯下去又得要搬一些專業計算機知識來說嘴 , 算了....
實務上有許多公司導入VM也是遇到相同問題 , 效能低落,還遠不如實體主機的效能及穩定!!
在我的認知裡,如果實體CPU的效能是固定的 , 也假設執行OS的程式碼有1萬行
在這HostOS裡去執行VM 一部 , 假設VM的GuestOS 也有1萬行程式碼
如此一來, VM什麼事都不做的情況下, 實體CPU的負擔就承擔2萬行的程式碼 , 如果有更多的VM一起執行的話
就先依此類推....
在這種情況下 , VM的效能恐怕也不會好到那裡去 , 在我的觀點來看,能動就算不錯了!!
因為實體CPU在承擔那麼多的程式碼後(而且還是VM什麼事都不做的情況下) , CPU效率
實在沒有會變好的證據 !! 這是我用最簡單易懂的看法來看待VM ...
當然,我沒有去考慮所謂的context switch (這好像是OS的專有名詞,有點忘了) !!
在這一點上,我能想得到的是, 如果VM在切換時,必須將CPU的所有Register等資料
先儲存起來後,再準備另一個VM的Register 資料Recovery後,來執行該VM
這時我會很擔心, 原本實體CPU的Branch Prediction 預測失準後 , 後面引來的重新準備
資料(punish time)
同樣也會讓實體CPU的效能低落 !!
但,我就是覺得很奇怪,怎麼那麼多的公司認不清這一點,還拼命導入VM .....