ESXi主机管理内存资源的方式
?????? 因為內存通常是最有限的資源,ESXi采用內存過量配置(Memory overcommitment,即配置后的虛擬機內存可能超過物理內存(RAM))對內存進行管理。使用內存過量配置時,ESXi必須使用技術從一個或多個VM中回收內存,這些技術被稱為:透明頁面共享(Transparent Page Sharing,TPS)、氣球(ballooning)、交換(swap)和內存壓縮(Memory compression)。
1、? 透明頁面共享
????? ESXi主機運行相同操作系統的VM時,保存一個可能相同的內存頁面,釋放相同其它重復的頁面。這一過程對OS完全透明,并不知道自己和其它VM共享一個相同的內存頁面。
2、 氣球
????? 從運行的VM中取得不需要的內存,并將其分配給其它需要內存資源的VM。在生產環境中,系統正常運行工作時,需要的內存很少,而啟動時分配的內存遠大于正常工作時所需的內存,從而造成大量的內存資源未使用(稱為閑置內存,idle memory),并很少使用。因為內存是共享的,因此可以收回供其它VM使用。
?????? 此時出現一個問題,ESXi怎么確定在使用氣球技術回收內存資源時,哪個VM會釋放內存呢?
共享(share)解決了這一難題。共享定義了VM的優先級,有4個級別:低、中、高和自定義(使用1:2:4比例或自定義比例)。ESXi主機優先從共享級別低的VM中回收內存,給共享級別高的VM使用。
?????? 此時,又出現了另一個問題:優先級設置比較高的VM可能積累一些或大量內存未使用,而優先級設置比較低的VM需要使用大量活動內存,由于共享并未規定使用活動內存的標準,因此,優先級設置比較低的VM將受到懲罰。
?????? 我們可以有一個思路:無論VM的共享優先級是什么,優先回收空閑的內存。這種思路就是ESXi的閑置內存稅(idle memory tax)。默認情況下,閑置內存稅參數被設置為75%,即回收閑置內存的75%。閑置內存稅賦予ESXi主機使用內存頁面的樣本概率方法進行內存回收。每個VM都在一個可設置的時間間隔內單獨采樣,默認情況下,ESXi每30秒采樣100個頁面。
3、 交換
??????? 氣球技術的全面性,保證了能夠高效回收內存,但是此時出現一個問題需要解決,就是內存資源全部都在使用中,這樣就無法回收內存資源。
??????? 當VM啟動時,創建一個擴展名為.vswp的交換文件。只有能夠創建和訪問這個文件時才能啟動VM(這意味著應該注意可用的存儲空間)。
??????? ESXi主機使用交換文件是為了防止出現使用內存過量配置但氣球驅動程序無法從其它VM回收內存的情況。在這種情況下,ESXi使用磁盤作為內存。但是這個技術可能永遠不會使用,因為磁盤訪問會大大影響性能。交換的唯一好處就是內存不足的時候VM不會崩潰。
??? 注意:硬盤訪問時間是以毫秒(ms,千分之一秒)計算,而內存訪問時間以納秒(ns,十億分之一)計算,兩者相差100萬倍。因此交換技術應該不會永遠使用。
4、 內存壓縮
??????? 內存壓縮的原理是將要交換的頁以壓縮的形式存儲在被保護的內存空間中,當系統訪問該頁引起缺頁時,系統會內存中找到該被壓縮的頁,并將其解壓縮后供系統使用。內存壓縮在系統存儲層次中邏輯地加入了一層:內存壓縮層,因此,可以說內存壓縮層是虛擬化管理器決定硬盤上交換頁面的中間層。
???????? 對壓縮內存的訪問快于硬盤訪問,沒有太多的性能損失。當一個虛擬頁面必須交換時,ESXi首先試圖在2KB或者更小的塊上面壓縮。
???????這是本人寫的第一篇關于虛擬化的博客,也是第一次寫博客,有不足之出希望大家多多斧正指教。
轉載于:https://blog.51cto.com/kevinhao/1550973
總結
以上是生活随笔為你收集整理的ESXi主机管理内存资源的方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【HNOI】 lct tree-dp
- 下一篇: cobbler get-loaders