【短篇教學】設定ESX中VM的Swapfile加快速度

如果你的ESX/ESXi中的VM需要常常有大量的Swapping動作(如資料庫伺服器),不管VM是放在本機硬碟或是獨立儲存設備上,把寶貴的BUS給Swapfile實在是很浪費的事。事實上在ESX/ESXi預設的安裝上,swapfile是放在和VM同一個目錄下,效能上在正常使用時感覺不大,但當某個VM開始狂佔Disk I/O時,其它VM就會被拖下來了。這篇文章的用意不在校調I/O,而是看看如何防止Swapping這些動作佔用I/O時,要怎麼樣設定才能避免此情況發生。
要這麼做,首先我們要準備一個SSD的磁碟做為Swap的存放處。SSD磁碟現在都有SATA2介面,可以放入標準的Bay中。當放入Bay中之後,最重要的要被ESX/ESXi抓到。因此在安裝了SSD之後,在ESX/ESXi中新增一個Datastore來儲存即可。大家應該都很熟悉步驟,我是詳細說明一下。
1、選定主機,並且選擇「Configuration/Hardware/Storage/Add Storage」。

2、選擇本機硬碟的LUN。事實上使用NFS來做為Swap是不建議的,因為會消耗HBA或NIC的I/O。

3、選擇你要做為Swap的新硬碟。此時系統會有一個總結說明,按下Next即可。


4 、建立這個Datastore的名字,決定大小等等。


5、最後按下「Finish」即完成增加Datastore。


6、增加完之後,選擇「Configure」的「Virtual Machine Swapfile Location」的Edit。

7、選擇第二個選項,並且選擇做為Swapfile的Datastore之後即可。

8、此後建立的VM,都會將Swapfile存在這個Datastore裏,如果能用兩個SSD做成RAID 0不知會有多快啊!

請教一個問題,我的環境是HA架構(4台 Cluster),Datastore用NFS連接share storage,有適用這個方法嗎?如是,4台都要設定Local端的swapfile? 感謝!
您好,
如果是HA的話,那麼還是將swapfile放在和VM一樣的目錄,要不然HA時可能會在VM內部出現問題,找不到swapfile而記憶體不足。
請教一下,目前Guest OS是怎麼算空間的??有時新裝的Guest OS,都會出現空間不足而無法啟動,必須將Guest OS硬碟空間再縮小一些重做(已有預留一些硬碟空間,小小的就是),Guest OS才能重做!!
您好,
Guest OS的空間計算還是以你設定的VMDK的大小,就算你有設定thin也會不能超過原來的大小。舉例來說,如果你的Datastore有200G,但你建立一個400G的OS,此時就會有問題,雖然是使用thin。一般我們設定時會讓每一個OS不超過Datastore即可,謝謝。
您好,
请教一个问题,ESX 主机空余的内存会不会协同提升硬盘的工作 本人在Guest OS 测试iops往往高于物理硬盘,这点一直来找不到什么解释.
Swap我一直来都不敢使用规划好的Guest OS 都不让他不会超过指定内存.
您好
大部分的先進作業系統(包括Hypervisor)都會儘可能使用內存來增加效率,vSphere也一樣,如果你的主機空閒內存夠多,ESX/ESXi也會儘量使用的。謝謝。
您好,
想查詢一下, 如果以 sas ssd usb 普通sata 等的drive 來類似swapfile 的local storge 那一種會比較好一點?若以速度, 穩定等做比較.
謝謝
您好
速度一定是SSD最好,價錢是SATA最便宜,穩定度是SAS,USB應該不會考慮,因為風險太高了,謝謝。
你好:
最近公司在 測試使用 esx 安裝原有的 linux +mysql 使用 ibm 3550 1u 的機器8G
發現效能一直起不來 看了一下 cpu 其實load 並不高 約20%
比較起來還比 直接安裝 linux+ mysql 效能還差非常多
想請假一下 嘉許兄 對於比較重試 io sql 系統 有什麼獨門的建議嗎?
另外 新書很精彩 果然是全球最強!!
嘉許大您好~
最近拜讀了您的大作,也同時將公司的資訊環境導入了新的VM架構中
不過最近遇到了一個問題,目前有2台HOST在運作當中~
其中一台的DataStore飆的非常高….嚴重影響到整個HOST的運作
所以想請教嘉許到一下~有什麼好方案可以解決
我的硬體是DELL R610 2CPU 8Core + MD3200i
上面目前跑的有 :
Win2003+SQL2005 (ERP)
Win2008(AD)
Win2008(File)
Win2008(Exchange2010)
是否是因為SQL的關係呢??如果按您這方式來做~效能會有改善嗎?
如果已經建好的VM是否有改善的方式??