星期六, 7月 11, 2009

[2009/7/11雜談] 軟硬體實作都有待加強的x86進階虛擬化

聽說Google鼓勵員工用20%的上班時間進行「個人發想」,我是不清楚實際的可信度啦,不過像我這種現階段只能在台商混吃等死的三流廢材,早從步入社會後,就貫徹「工作再忙也要自由研究」的大原則。

最近這幾天,剛好在累積虛擬化環境的效能測試數據,讓人驚訝卻不意外的是,Intel Nehalem的VPID和EPT,似乎都出現了可從學理面即可推論出來的後遺症。

根據Sun xVM VirtualBox 3一路跑下來的結果,簡而言之:

1. EPT會大幅拉長記憶體整體latency,但很詭異的是,如果不打開VPID,反而整體記憶體頻寬有激增的趨勢。

2. VPID + EPT = 更長的整體記憶體latency,但整體記憶體頻寬表現不錯。

3. 最低的整體latency,竟然發生在VPID enable、EPT disable的環境,這這...還比VPID/EPT一同關閉低了一些,扣掉cache影響的主記憶體頻寬,也比較高。

4. Only VPID enable = 特別好的single thread效率。活見鬼了。

5. VPID enable = 開機時間拉長。EPT enable = 主記憶體頻寬下滑。

結果就是:
好複雜啊...orz

上述結論嚴格說來都不能說準,因為都是單一32 bits VM的情況,根本無法發揮VPID/EPT的威力,但這也證明了,Intel VPID/EPT還不見得真如宣傳的如此美好,或多或少還是會有一些副作用。

當然,VMM最佳化程度不足,也許更是元兇,晚點來多跑幾個VM壓榨一下極限效能好了,順便拉Istanbul和Shanghai出來PK一下,搞不好AMD K10會有截然不同的行為特性也說不定。

最後,原來ServerEngines Pilot II加上某顆10/100 PHY,平時系統關機待命時,就會吃掉「10W」,想想也蠻恐怖的...
張貼留言