linux的虛擬記憶體swap分割槽的使用和配置

2021-07-14 09:43:46 字數 981 閱讀 2672

swap空間的作用可簡單描述為:當系統的物理記憶體不夠用的時候,就需要將物理記憶體中的一部分空間釋放出來,以供當前執行的程式使用。那些被釋放的空間可能來自一些很長時間沒有什麼操作的程式,這些被釋放的空間被臨時儲存到swap空間中,等到那些程式要執行時,再從swap中恢復儲存的資料到記憶體中。這樣,系統總是在物理記憶體不夠時,才進行swap交換。

1.使用

1)linux下程式可以使用的記憶體大小

一台只有物理記憶體256mb,只要硬碟足夠大,並且是cpu定址夠大,理論上64位的機器可以使用到2^64b大小的"記憶體",只要修改系統的swap分割槽就可以實現。

2)雖然程式可以使用超過物理記憶體大小的記憶體空間,但是一旦使用到swap分割槽的話,程式的效能就會急劇下降,因為swap分割槽是使用硬碟空間,硬碟的讀寫速度最快也就200mbps,跟不上記憶體的gb級別的速度。不過還是得分情況,若是熱的資料會一直儲存在記憶體裡,因此當程式訪問到熱資料時,效能不會下降(相對於完全記憶體的程式),若是訪問到冷的資料時,系統會把冷資料和記憶體中熱資料進行交換,這樣冷資料就會保留在記憶體中,因此訪問冷資料時,第一次時響應時間比較慢,而第二次卻比較快,到第n次時都比較快。但是一旦資料被交換到swap分割槽時,再訪問它時效能就會下降。

3)c裡的malloc函式的返回值為null的判斷基本上沒有什麼用,我在程式裡加了判斷沒有起到作用,因為當swap分割槽也被程式使用完畢後,linux系統會自我保護,把程式kill掉。因此沒有出現malloc為null的情況。

以上觀點是我從測試程式記憶體使用情況測試過程中得出的。

2.修改swap分割槽的大小

#一、檢視系統當前的分割槽情況:

free -m

#二、建立用於交換分割槽的檔案:

#三、設定交換分割槽檔案:

#四、立即啟用交換分割槽檔案:

#五、若要想使開機時自啟用,則需修改檔案/etc/fstab中的swap行:

#六、刪除swap:

#七、從fstab移除

vi /etc/fstab

刪除對應的行

虛擬記憶體swap

虛擬記憶體 在磁碟上的一片空間,僅作為物理記憶體的補充使用.linux一般不使用虛擬內 存.虛擬記憶體資訊 proc swaps 設定虛擬記憶體 方法一 1.建立新分割槽 2.將新分割槽的system id改為82 最後儲存退出.3.使用命令mkswap device格式化剛剛建立的新分割槽 例 m...

linux擴容swap虛擬記憶體

我linux機器的記憶體有點小,奈何上次只給swap分了2g的記憶體,今天突然感覺不夠用 那就擴容10g的swap虛擬記憶體吧 1.先關閉正在使用的2g的swap記憶體 swapoff var swap2.刪除swap虛擬記憶體檔案 rm var swap3.使用dd命令建立乙個檔案 dd if d...

SWAP虛擬記憶體配置

swap是linux中的虛擬記憶體,用於擴充物理記憶體不足而用來儲存臨時資料存在的。它類似於windows中的虛擬記憶體。在windows中,只可以使用檔案來當作虛擬記憶體。而linux可以檔案或者分割槽來當作虛擬記憶體。首先檢視當前的記憶體和swap 空間大小 預設單位為k,m 單位為m free...