1. 程式人生 > >高手對話:有關ESXi的主機快取問題,值得收藏!

高手對話:有關ESXi的主機快取問題,值得收藏!

JAR提問:
大家都知道esxi 5支援用ssd盤做主機快取,今天簡單實驗了一下,我用一塊三星830 ssd盤,發現能夠識別出驅動器型別為SSD。
並且用這塊盤順利啟用了SSD主機快取。
我的理解是,當Host記憶體不夠,需要動用vm交換檔案的時候,會先使用SSD主機快取,當SSD主機快取空間也不夠用的時候再使用虛擬機器的交換檔案。
SSD快取一旦設定後,使用的時候完全透明,不影響vm或host的交換檔案設定。
由於我的生產環境目前還是4.1, 所以無法實際驗證效果。
歡迎各位達人指正。


TiGi回答:
我當初買第三臺R710的時候,曾經打算嘗試一下主機快取的,為此專門配置了SSD硬碟,但是接在H700卡上,VMware ESXi認不出這是SSD,.........。
不過按照VMware的KB,可以強行指定某塊硬碟是SSD。


winxp2000回答:
能不用快取儘量不用,速度不會提高;
當然,如果你記憶體總是溢位的情況,還是配備一個比較安全
另外要注意的是,預設情況下,虛擬機器的快取=你配備給你這個虛擬機器的記憶體
而且預設情況下也會放在虛擬機器的檔案目錄,需要手工指定


TiGi回答:
是的,後來我曾經考慮過,買新機的時候64GB記憶體和128GB記憶體,差價不到1萬,而買個企業級SSD,價格也不便宜 —— 如果出於資料可靠性考慮,一旦需要買兩個做映象的話........。
還是CacheCade比較合算。


JAR回答:
我測試這臺機器是桌上型電腦,ssd直接接主機板,沒有raid卡。
我估計ssd如果接在raid卡上,主機就無法獲得ssd的硬體資訊而判斷不出是ssd了。


jar補充回答:
我這裡有些esxi不是跑關鍵應用,是用來給很多專案跑測試應用的,數量比較多,記憶體溢位經常能到10G, 這個時候能明顯看到cpu負荷和儲存io都比較高。
如果把ssd作為交換檔案的儲存指定,其實很浪費,需要的容量至少得是所有vm的指定虛擬記憶體的總和。而且因為這些vm都是分散管理的,管起來很麻煩。
SSD主機快取可以避免上面的問題,設定上去後就不用管了,swap檔案基本仍然還建立在原來的儲存上,但只要記憶體溢位不超過SSD的容量,比如128G, 實際硬碟或共享儲存上的swap檔案永遠也不會用到。
比如我的伺服器現在最大溢位記憶體基本不超過10G, 如果用個64G SLC SSD做主機快取應該能改善很多


hokings回覆winxp2000:
為什麼說盡量不用呢?ESXi5中會有兩個地方涉及到快取問題:
1)ESXi的主機快取(在Host Cache Configuration 中設定)
2)每個虛機的交換檔案快取(虛機設定-Option-Swapfile Location中設定),臺灣虛擬先生網站建議把Swapfile放到SSD上去,說會提高速度。
把1)和2)同時都放到SSD上好嗎?


TiGi回答:
如果記憶體不大,SSD一般 —— 例如32GB記憶體、120GB SSD,因為主機記憶體不太大,因此上面的VM總記憶體不會太多,這時候,主機快取以及將交換檔案一起放到SSD上有意思/意義。
如果記憶體很大,SSD不大 —— 例如128GB記憶體、100GB SSD,怎樣使用,那時候就要綜合考評一下了(估計還是作為主機快取更有利)。
——————————————
總體而言,有SSD總是好事。


jar回覆hokings:
我認為如果啟用了主機交換快取,就沒有太大必要再把交換檔案再放在ssd上了。
拿我這裡執行中的一臺伺服器為例,實體記憶體是96G, 上面有81個vm, 合計置備記憶體總和差不多190G, 也就是說,如果這些vm都開啟的話至少需要190G的交換檔案。
目前執行中的vm有47個,合計置備記憶體為110G, 此時可以從效能圖上看到虛擬增長大約在10G, 交換操作佔用記憶體大概是3.5G, 也就是說,有個32G SSD做主機快取就可以吸收掉原本所有需要動用交換檔案的IO, 交換檔案幾乎根本不需要使用。
如果把交換檔案建在SSD上,這個SSD至少要有190G空間,而且幾乎沒有任何IO, 完全成擺設了。
對於不支援主機快取的ESXi 4.1, 把交換檔案建在SSD上就是唯一的選擇了。


sifeng回答jar:
你提到的47個vm,置備110G記憶體,虛擬增長10G,交換檔案3.5G,我的理解就是:實體記憶體+虛擬增長+交換檔案=置備記憶體,那其中的虛擬增長是否就是記憶體溢位,這10G的大小目前應該就是佔用的SSD盤的主機快取吧,那如果沒有配置主機快取的話,這個10G是佔用的哪裡的資源呢,是交換檔案的麼?


mengduo提問:
我設定了主機快取,然後虛擬機器的交換檔案沒有改變位置,還在原儲存上。兩個問題請教:
1。 按上面dx的解釋,虛擬機器會自動使用主機快取做交換,只有記憶體溢位的時候才會使用虛擬機器在原儲存上的交換檔案。沒溢位就不會用,是否這樣理解?? 但通過觀察虛擬機器目錄裡面檔案日期,發現實際每次虛擬機器目錄裡面的交換檔案日期都是最新日期的,這是否可以證明還是在使用這些交換檔案??
2。設定主機快取大小實際就應該大致等於主機實體記憶體大小??? 再大也基本沒啥用? 考慮虛擬機器記憶體設定基本也不會超出物理機記憶體大小太多?


回答:
1. 交換檔案的日期被更新不能代表是否被使用了,vmware有可能會自動更新交換檔案的一些記錄資訊。比較可靠的判斷,應該從儲存效能圖裡觀察用於儲存交換檔案的儲存上面是否有發生IO, 如果指定一個專用LUN來儲存交換檔案比較容易說明問題。
2. 主機快取的大小和實體記憶體大小沒啥關係,最好大於所有VM的置備記憶體總和,這樣基本某個vm的虛擬記憶體即便全部swap out, 也夠儲存在主機快取裡,就可以保證不會動用到iop低的交換檔案儲存了。


本對話整理自  http://bbs.vmsky.com/thread-39499-1-1.html 


另外  http://bbs.vmsky.com/thread-39869-1-1.html