天天看點

【Linux】 vmstat指令的使用

【Linux】 vmstat指令的使用

swpd    已使用的SWAP 空間大小,KB為機關

free       可用的實體記憶體大小,KB為機關

buff           實體記憶體用來緩存讀寫操作的buffer大小,KB為機關

cache       實體記憶體用來緩存程序位址空間的cache大小,kb為機關

si               資料從SWAP讀取到RAM(swap in)的大小,kb為機關

so             資料從RAM寫到SWAP的大小,kb為機關

bi              磁盤塊從檔案系統或SWAP讀取到RAM的大小,block為機關

bo             磁盤塊從RAM

in:         每秒中斷數目,包括時鐘中斷

cs:        每秒上下文切換

us:        使用者程序執行的時間

sy:        系統程序執行時間

id:        空閑時間,中央處理器的空閑時間

wa:      等待IO的時間

實體記憶體和虛拟記憶體差別

  我們知道,直接從實體記憶體讀寫資料要比從硬碟讀寫資料要快的多,是以,我們希望所有資料的讀取和寫入都在記憶體完成,而記憶體是有限的,這樣就引出了實體記憶體與虛拟記憶體的概念。

    實體記憶體就是系統硬體提供的記憶體大小,是真正的記憶體,相對于實體記憶體,在linux下還有一個虛拟記憶體的概念,虛拟記憶體就是為了滿足實體記憶體的不足而提出的政策,它是利用磁盤空間虛拟出的一塊邏輯記憶體,用作虛拟記憶體的磁盤空間被稱為交換空間(Swap Space)。

    作為實體記憶體的擴充,linux會在實體記憶體不足時,使用交換分區的虛拟記憶體,更詳細的說,就是核心會将暫時不用的記憶體塊資訊寫到交換空間,這樣以來,實體記憶體得到了釋放,這塊記憶體就可以用于其它目的,當需要用到原始的内容時,這些資訊會被重新從交換空間讀入實體記憶體。

    linux的記憶體管理采取的是分頁存取機制,為了保證實體記憶體能得到充分的利用,核心會在适當的時候将實體記憶體中不經常使用的資料塊自動交換到虛拟記憶體中,而将經常使用的資訊保留到實體記憶體。

要深入了解linux記憶體運作機制,需要知道下面提到的幾個方面:

    首先,Linux系統會不時的進行頁面交換操作,以保持盡可能多的空閑實體記憶體,即使并沒有什麼事情需要記憶體,Linux也會交換出暫時不用的記憶體頁面。這可以避免等待交換所需的時間。

    其次,linux進行頁面交換是有條件的,不是所有頁面在不用時都交換到虛拟記憶體,linux核心根據”最近最經常使用“算法,僅僅将一些不經常使用的頁面檔案交換到虛拟記憶體,有時我們會看到這麼一個現象:linux實體記憶體還有很多,但是交換空間也使用了很多。其實,這并不奇怪,例如,一個占用很大記憶體的程序運作時,需要耗費很多記憶體資源,此時就會有一些不常用頁面檔案被交換到虛拟記憶體中,但後來這個占用很多記憶體資源的程序結束并釋放了很多記憶體時,剛才被交換出去的頁面檔案并不會自動的交換進實體記憶體,除非有這個必要,那麼此刻系統實體記憶體就會空閑很多,同時交換空間也在被使用,就出現了剛才所說的現象了。關于這點,不用擔心什麼,隻要知道是怎麼一回事就可以了。

    最後,交換空間的頁面在使用時會首先被交換到實體記憶體,如果此時沒有足夠的實體記憶體來容納這些頁面,它們又會被馬上交換出去,如此以來,虛拟記憶體中可能沒有足夠空間來存儲這些交換頁面,最終會導緻linux出現假當機、服務異常等問題,linux雖然可以在一段時間内自行恢複,但是恢複後的系統已經基本不可用了。

    是以,合理規劃和設計linux記憶體的使用,是非常重要的。

虛拟記憶體原理    

在系統中運作的每個程序都需要使用到記憶體,但不是每個程序都需要每時每刻使用系統配置設定的記憶體空間。當系統運作所需記憶體超過實際的實體記憶體,核心會釋放某些程序所占用但未使用的部分或所有實體記憶體,将這部分資料存儲在磁盤上直到程序下一次調用,并将釋放出的記憶體提供給有需要的程序使用。

    在Linux記憶體管理中,主要是通過“調頁Paging”和“交換Swapping”來完成上述的記憶體排程。調頁算法是将記憶體中最近不常使用的頁面換到磁盤上,把活動頁面保留在記憶體中供程序使用。交換技術是将整個程序,而不是部分頁面,全部交換到磁盤上。

    分頁(Page)寫入磁盤的過程被稱作Page-Out,分頁(Page)從磁盤重新回到記憶體的過程被稱作Page-In。當核心需要一個分頁時,但發現此分頁不在實體記憶體中(因為已經被Page-Out了),此時就發生了分頁錯誤(Page Fault)。

繼續閱讀