公司在評估一臺12核心的服務(wù)器在上線后的狀況,目前規(guī)劃兩個Guest OS分別操作數(shù)據(jù)庫和文檔共享,如果性能出現(xiàn)瓶頸,要以數(shù)據(jù)庫的Guest OS為優(yōu)先。如果無法調(diào)整CPU資源給優(yōu)先的服務(wù)使用,請問是不是要把這兩個Guest OS,放在不同的實體主機(jī)比較好?
如果只有兩個Guest OS,以規(guī)格來看,瓶頸應(yīng)不會在CPU性能上,反而是硬盤I/O跟網(wǎng)絡(luò)速度的性能比較有可能,而內(nèi)存數(shù)量及使用規(guī)劃也要注意。另外如果是無法長期停機(jī)的機(jī)器,需要評估備份或后備規(guī)劃,以及后備系統(tǒng)版權(quán)授權(quán)規(guī)定及費用。
關(guān)鍵瓶頸是磁盤I/O,并非CPU。需要跟進(jìn)的事情是﹕
1. 在舊主機(jī)上面,先監(jiān)測出跑報表所需要的IOPS有多少?并精算VM硬盤。
2. 如果文檔復(fù)制會占用主機(jī)所有的IOPS,這種工作不適合跟其他VM共享磁盤。
所以,如果要拆開,主因并不是CPU不夠用(跑報表跟文檔復(fù)制,根本用不到多少CPU資源),而是磁盤的I/O資源會被文檔復(fù)制全部占用,造成其他的VM排隊等候。
想想看,一個VM Host上面有多少VM Guest,要同時存取I/O?
而且,在VM Host可以設(shè)定分配給每個VM Guest的CPU、Memory 資源量(Min/Max),以及VM Host保留多少自己用(如果VM Host 自己都跑不動,要怎么去管理VM Guest)。
在虛擬化軟件的選擇上,如果是VMware ESX(i),可以透過vSphere Client或vCenter新增Resource pool,來設(shè)定Guest OS的CPU資源。
可以測試一下:報表跑數(shù)據(jù)大量擇取的時候,使用“Windows工作管理員/處理程序”查看CPU與內(nèi)存以及I/O的狀態(tài)。
雖然將它們放在同一臺主機(jī),但是文檔服務(wù)給它一個完全獨立的磁盤子系統(tǒng),不跟其他VM共用,那這樣就不會有以上的顧慮,還是可以放在一起。
例如,你可以買一臺SAN給文檔服務(wù)的VM專用,但另買一臺SAN給其他的VM共用,最后,數(shù)據(jù)庫的問題還是要回到IOPS上來。我遇過80%以上想做虛擬化的新手,都不知道原本舊主機(jī)上數(shù)據(jù)庫的瓶頸是在Disk I/O。一般說來,跑ERP報表吃掉1,000~3,000 IOPS是很常見的狀況,這代表RAID至少要5到15顆以上來組合,才足夠應(yīng)付這樣的IOPS。
根據(jù)以往的經(jīng)驗,在看到這個數(shù)據(jù)之前,用戶都一直認(rèn)為瓶頸是CPU,所以要換新主機(jī)來提升CPU,但看過監(jiān)測數(shù)據(jù)之后才知道,其實瓶頸都在IOPS。
補充一下,一般狀況下,一顆SATA硬盤的IOPS只有70到80左右,一顆15K SAS硬盤的IOPS,大約200到240左右。組成RAID多顆硬盤時,IOPS會跟著你的硬盤數(shù)量而增加,例如使用96顆硬盤組成RAID-5的一臺Dell MD3200i,實測數(shù)據(jù)上,IOPS可以高達(dá)40,000。