如何評估虛擬化伺服器效能?
到iT邦幫忙

arthur1977(iT邦初學者10級)發問:
公司在評估一臺12核心的伺服器在上線後的狀況,目前規畫兩個Guest OS分別執行資料庫和檔案分享,如果效能出現瓶頸,要以資料庫的Guest OS為優先。如果無法調整CPU資源給優先的服務使用,請問是不是要把這兩個Guest OS,放在不同的實體主機比較好?

adelin(iT邦初學者7級):
如果只有兩個Guest OS,以規格來看,瓶頸應不會在CPU效能上,反而是硬碟I/O跟網路速度的效能比較有可能,而記憶體數量及使用規畫也要注意。另外如果是無法長期停機的機器,需要評估備份或備援規畫,以及備援系統版權授權規定及費用。

raytracy(iT邦超人2級):
你所說的這幾件事情,關鍵瓶頸是磁碟I/O,並非CPU。你可做的事情是﹕

1. 在舊主機上面,先監測出跑報表所需要的IOPS有多少?並精算你的 VM 硬碟。

2. 如果檔案複製會吃光主機所有的IOPS,這種工作不適合跟其他VM共享磁碟。

所以,如果要拆開,主因並不是CPU不夠用(跑報表跟檔案複製,根本用不到多少CPU時脈),而是磁碟的I/O會被檔案複寫給吃光,造成其他的VM排隊等候。

雖然你將它們放在同一臺主機,但是檔案服務給它一個完全獨立的磁碟子系統,不跟其他VM共用,那這樣就不會有以上的顧慮,還是可以放在一起。

例如,你可以買一臺SAN給檔案服務的VM專用,但另買一臺SAN給其他的VM共用,最後,資料庫的問題還是要回到IOPS上來。我遇過80%以上想做虛擬化的新手,都不知道原本舊主機上資料庫的瓶頸是在Disk I/O。一般說來,跑ERP報表吃掉1,000~3,000 IOPS是很常見的狀況,這代表你的RAID至少要5到15顆以上來組合,才足夠應付這樣的IOPS。

我幫幾家客戶做過的診斷,在看到這個數據之前,他們都一直以為瓶頸是CPU,所以要換新主機來提升CPU,但看過監測數據之後才知道,其實瓶頸都在IOPS。

補充一下,一般狀況下,一顆SATA硬碟的IOPS只有70到80左右,一顆15K SAS硬碟的IOPS,大約200到240左右。組成RAID多顆硬碟時,IOPS會跟著你的硬碟數量而增加,例如使用96顆硬碟組成RAID-5的一臺Dell MD3200i,實測數據上,IOPS可以高達40,000。

tombo(iT邦初學者1級):
我自己的經驗是99%都是I/O瓶頸,想想看,一個VM Host上面有多少VM Guest,要同時存取I/O?

而且,在VM Host可以設定分配給每個VM Guest的CPU、Memory 資源量(Min/Max),以及VM Host保留多少自己用(如果VM Host 自己都跑不動,要怎麼去管理VM Guest)。

jasonlin69(iT邦初學者10級):
請問你是用哪一套虛擬化軟體?如果是VMware ESX(i),可以透過vSphere Client或vCenter新增Resource pool,來設定Guest OS的CPU資源。

你可以測試一下:報表跑資料大量撈取的時候,使用「Windows工作管理員/處理程序(檢視、選擇欄位)」檢視CPU與記憶體以及I/O的狀態。

熱門新聞

Advertisement