到底功夫熊貓(Xen)踢不踢的動大象(Hadoop)呢?
這幾天我在Facebook - Taiwan Hadoop User Group 拋磚引玉貼了 "要使用大象,真的得養頭大象嗎?為何不使用AWS EMR"的文章,意外引起熱烈的討論,把許多潛水的高手和同好都吸了出來~XD (你自己不是也都在潛水),因為大家都有遇到虛擬化效能的問題。一般來說,要養Hadoop (或是大型分散式系統),如果不是用實體機器來養 (除非你像google一樣有錢,不然一定養不多,也養不起),不然通常就是用虛擬化的技術來玩。
如果只是玩玩和測試安裝與練習寫寫程式,那可能還沒什麼大礙,但是一到要玩到真實案例,甚至要上Production 就會遇到許多效能瓶頸的問題需要去解決。像在 Taiwan Hadoop User Group 的討論串裡, James 大大就有提到:如果同樣都是 100TB 的 terasort 好了, 如果把一個實體的hadoop cluster搬到AWS,要多多少個 node 才能有相同的效能 ?
回到效能問題,第一步可能要先引自Jazz大的名言:學控制的人都會知道『先能量測,才有辦法控制』,Jazz大建議安裝 Ganglia 跟 Munin來觀察,我們是裝OpenNms,總之要先確認Performace是出在哪裡:
- Host Dom0?
- CPU ?
- Memory ?
- Disk I/O ?
- Network I/O ?
- 你Server 的等級
- 你目前是使用哪一版的Xen?( 3.x、4.x)
- 你是使用PV 還是HVM?
- 你是使用怎樣的deivce當domU's disk?( file: ? tap:aio:? phy:?)
- VM 盡量不要使用 SWAP (不過這還有爭議)
- RAID10 array is recommended
- 使用PV (半虛擬化)效能較好,或使用Xen PVHVM drivers for Linux HVM guests
- 盡量直接使用 block device (without file system).
- 如果還是要用File System 請參考這篇 Filesystem performance on Xen
2 則留言 :
VM 沒 swap ,我記得會有問題?
當系統memory用光時會使用swap , 但沒swap可用時, DomU 系統整個會變的怪怪的,印象中會一直出現 (Read only file system),在重啟 DomU時會開不起來, 需執行 check file system .
有錯誤請指正.
所以應該是留最小量的SWAP,讓系統不會當掉,但是也盡量不要用到~:P
張貼留言