想請教大家一個關於虛擬化伺服器效能的問題:
一台 12 核心的伺服器在上線前的規劃考量最佳與最差的狀況, 上面預先規劃同時跑資料庫和檔案分享兩個 guest os, 最好的狀況是兩種guest os都很順, 最差的狀況是 兩種guest os都很慢,如果最差的狀況發現效能瓶頸出在 cpu , 但是要以資料庫的guest os為優先, 如果在不能夠調整cpu資源給優先的服務使用的話,請問是不是要把資料庫和檔案分享這兩個 guest os放在不同的實體主機?
這個問題各有支持方和反對方,支持兩種guest os放在同一台伺服器的想法是 : "這台機器 cpu 運算很強,除非資料量大到不可思議,不然怎麼可能會 over loading? 應當要以伺服器的官方測試數據為準"
支持把兩種服務放在不同的實體主機的想法是 : "如果在無法人工預先調整cpu資源給優先的服務用的話,代表這兩個 guest os 不適合放在同一台主機做虛擬化,所以建議放在兩個實體主機。如果可以預先調整cpu資源給優先權較高的 guest os 的話,可以放在同一台實體主機虛擬化"
因為這一台伺服器擔任的工作非常重要,所以希望是能夠在上線前就先排除可能發生效能瓶頸的原因。
歡迎大家提供意見。
arthur1977提到:
檔案分享大檔小檔都有,也會有很大的檔案作大量複製。
資料庫服務主要是跑 erp , loading 大多出在報表的資料撈取。
在舊主機上常發生報表很慢的問題。
您所說的這幾件事情, 關鍵瓶頸是磁碟 I/O, 並非 CPU.
您可做的事情是:
所以, 如果要拆開的話, 主因並不是 CPU 不夠用 (跑報表跟檔案複製根本用不到多少 CPU 時脈), 而是磁碟的 I/O 會被檔案複寫給吃光, 造成其他的 VM 排隊等候.
但是, 雖然你將他們放在同一台主機, 但是檔案服務給他一個完全獨立的磁碟子系統, 不跟其他 VM 共用的話, 那這樣就不會有以上的顧慮, 還是可以放在一起.
例如, 你可以買一台 SAN 給檔案服務的 VM 專用, 但另買一台 SAN 給其他的 VM 共用.
最後, 資料庫的問題還是要回到 IOPS 上來. 我遇過 80% 以上想做虛擬化的新手, 都不知道原本舊主機上 DB 的瓶頸是在 Disk I/O. 一般說來, 跑 ERP 報表吃掉 1,000~3,000 IOPS 是很常見的狀況, 這代表你的 RAID 至少要 5~15 顆以上來組合, 才足夠應付這樣的 IOPS.
以下是我幫幾家客戶做過的診斷, 在看到這個數據之前, 他們都一直以為瓶頸是 CPU, 所以要換新主機來提升 CPU, 但看過監測數據之後才知道, 其實瓶頸都在 IOPS:
arthur1977提到:
如果才兩個 guest os以規格來看瓶頸應不會在CPU效能上,應會在硬碟IO跟網路速度的效能會比較可能(記憶體數量及使用規劃也小重要),另外如果是無法長期停機的機器需要再評估的是備份or備援規劃,以及備援的系統版權授權規定及費用。
如果短期不會擴充guest os數量,可能還是以兩台實體去跑會比較保險,且變動也小,不要為了虛擬化而虛擬化
請問您?! 資料庫是那家公司的產品?! 有時後效能卡在資料庫版本也是有可能的..
Raytracy大真專業!
我自己的經驗是 99% 都是 I/O 瓶頸,想想看,一個 VM Host 上面有多少 VM Guest 要同時存取 I/O?
而且在 VM Host 可以設定分配給每個 VM Guest 的 CPU、Memory 資源量(Min/Max),以及 VM Host 保留多少自己用(如果VM Host 自己都跑不動,要怎麼去管理VM Guest)
阿哩
來太慢了
Raytracy大都講完了
我還有啥好講的
發個炫耀文好了
目前以我手上的案子
已經有客戶在使用這種等級的Storage規劃虛擬化了
規劃主規格如下
1.單座3U以下
2.雙控Storage
3.效能要求:360K IOPs & 2000MB/Sec
不知道各位看官有沒有注意到
3U的Storage要撐出360K IOPs & 2000MB/Sec
這一切都是為了打造雲端阿
請問你是用哪一套虛擬化軟體?
如果是VMware esx(i),
可以透過vSphere client或vCenter新增resource pool來設定guest os的CPU資源.
還有你的硬碟有幾顆? 怎麼切割硬碟分割區的?
硬碟有無做RAID? 其RAID Level是多少?
主機在無人狀況, HD Tune或HD Speed跑出來的IO數據為多少?
(方便的話,請貼圖)
兩個guest os, 其*.vmdk所存放的位置(硬碟分割區)為何?
你的網路設備為何?
Switch是100Mbps的環境?
還是1000M(Gigabit)bps的環境?
或10Gbps環境?
測試一下, 報表跑資料大量撈取的時候,
使用 "Windows工作管理員" -> "處理程序"("檢視"->"選擇欄位")
來檢視CPU與Memory以及IO的狀態.
近版的Windows可以進階使用
"Windows工作管理員" -> "效能"->"資源監視器"來檢視.