在windows中,我們知道可以用虛擬記憶體來部分解決記憶體不足的問題,而在linux下,swap就是起到類似作用的乙個機制。當物理記憶體不足時,會將一部分磁碟內的儲存空間當作swap分割槽使用,以環節記憶體容量不足的問題。
其基本操作有兩個,分別為swap out與swap in,前者時在系統發現記憶體不足時,將記憶體中暫時不用的資料交換出去放在swap分割槽的過程,而後者為當某程序又需要這些資料且系統發現還有空閒物理記憶體時,將swap分割槽中的資料交換回物理記憶體的過程。
同時,也類似於windows的虛擬記憶體的設定大小,swap的大小也是有上限的,一旦swap使用完,作業系統就會觸發oom-killer機制,把消耗記憶體最多的程序kill掉以釋放記憶體。
linux系統會將記憶體剩餘大小根據3個閾值來進行判定當前的狀態,這三個閾值分別為min、low、high,這可以將剩餘記憶體劃分為多個狀態:
現在,讓我們來看看linux中會合適進行swap:
當需要進行記憶體分配時,發現沒有足夠的空閒記憶體,此時會立刻觸發記憶體**
在後台有乙個swapd守護程序會周期性地對系統記憶體進行檢查,若當前可用記憶體降低到特定閾值之後會主動觸發記憶體**。
這裡,第二點中的閾值可以詳細解釋一下,上面已經說過linux中的記憶體有三個閾值,這裡在檢查時,若剩餘記憶體到達low時,守護繼承便開始**記憶體,直到記憶體回到high,如果記憶體**來不及,使得剩餘記憶體低至min,這時會觸發直接**。
Linux中的SWAP機制
在windows中,我們知道可以用虛擬記憶體來部分解決記憶體不足的問題,而在linux下,swap就是起到類似作用的乙個機制。當物理記憶體不足時,會將一部分磁碟內的儲存空間當作swap分割槽使用,以環節記憶體容量不足的問題。其基本操作有兩個,分別為swap out與swap in,前者時在系統發現記...
Linux中的SWAP機制
在windows中,我們知道可以用虛擬記憶體來部分解決記憶體不足的問題,而在linux下,swap就是起到類似作用的乙個機制。當物理記憶體不足時,會將一部分磁碟內的儲存空間當作swap分割槽使用,以環節記憶體容量不足的問題。其基本操作有兩個,分別為swap out與swap in,前者時在系統發現記...
linux中swap分割槽的介紹
swap就是linux下的虛擬記憶體分割槽,它的作用是在物理記憶體使用完之後,將磁碟空間 也就是swap分割槽 虛擬成記憶體來使用.它和windows系統的交換檔案作用類似,但是它是一段連續的磁碟空間,並且對使用者不可見。缺點 這個swap分割槽能夠作為 虛擬 的記憶體,但它的速度比物理記憶體可是慢...