簡介
交換分區,英文的說法是swap,意思是“交換”、“實物交易”。它的功能就是在記憶體不夠的情況下,作業系統先把記憶體中暫時不用的數據,存到硬碟的交換空間,騰出記憶體來讓別的程式運行,和Windows的虛擬記憶體(pagefile.sys)的作用是一樣的。
SWAP分區分析
SWAP就是LINUX下的虛擬記憶體分區,它的作用是在物理記憶體使用完之後,將磁碟空間(也就是SWAP分區)虛擬成記憶體來使用。
它和Windows系統的交換檔案作用類似,但是它是一段連續的磁碟空間,並且對用戶不可見。
需要注意的是,雖然這個SWAP分區能夠作為"虛擬"的記憶體,但它的速度比物理記憶體可是慢多了,因此如果需要更快的速度的話,並不能寄厚望於SWAP,最好的辦法仍然是加大物理記憶體。SWAP分區只是臨時的解決辦法.
交換分區(swap)的合理值一般在記憶體的2倍左右?
一種流行的、以訛傳訛的說法是,安裝Linux系統時,交換分區swap的大小應該是記憶體的兩倍。也就是說,如果記憶體是2G,那么就應該分出4G的硬碟空間作為交換空間。其實這是嚴重的浪費。真實的情況是:可以根據你系統記憶體的大小,以及所使用的程式,自行決定交換分區的大小,甚至可以完全不用交換分區!
----------------------------------------------------------------------------------------------
查看swap的空間大小
[jonny@localhost~]$free-m
totalusedfreesharedbufferscached
Mem:998977200053
-/+buffers/cache:92275
Swap:201572008
Mem行顯示了從系統角度看來記憶體使用的情況,total是系統可用的記憶體大小,數量上等於系統物理記憶體減去核心保留的記憶體。
buffers和cached是系統用做緩衝的記憶體。buffers與某個塊設備關聯,包含了檔案系統元數據,並且跟蹤了塊的變化。cache只包含了檔案本身。
-/+buffers/cache行則從用戶角度顯示記憶體信息,可用記憶體從數量上等於mem行used列值減去buffers和cached記憶體的大小。
因為buffers和cached是作業系統為加快系統運行而設定的,當用戶需要時,可以只接為用戶使用。
Swap行便是系統的swap信息。
在日常套用中,通過上述命令看到交換空間的使用情況為0,那么你就不需要很大的虛擬記憶體,甚至可以完全不需要另闢硬碟空間作為虛擬記憶體。那么,萬一有一天你需要了呢,難道要重灌系統?大可不必,在Linux下虛擬記憶體不單可以放在單獨的交換分區,也可以是一個在正常分區下的交換檔案。
查看swap空間(file(s)/partition(s))
包括檔案和分區的詳細信息
#swapon-s
等價於
#cat/proc/swap
[jonny@localhost~]$cat/proc/swaps
FilenameTypeSizeUsedPriority
/dev/sda3partition2064344126768-1
[jonny@localhost~]$swapon-s
FilenameTypeSizeUsedPriority
/dev/sda3partition2064344126768-1
添加交換空間
兩種選擇:添加一個交換分區或添加一個交換檔案。推薦你添加一個交換分區;不過,若你沒有多少空閒空間可用,則添加交換檔案。
1.添加一個交換分區
步驟如下:
a使用fdisk來創建交換分區(假設/dev/sdb2是創建的交換分區)
b使用mkswap命令來設定交換分區:
#mkswap/dev/sdb2
c啟用交換分區:
#swapon/dev/sdb2
d寫入/etc/fstab,以便在引導時啟用:
/dev/sdb2swapswapdefaults00
2.添加一個交換檔案
a創建大小為512M的交換檔案:
#ddif=/dev/zeroof=/swapfile1bs=1024kcount=512
b使用mkswap命令來設定交換檔案:
#mkswap/swapfile1
c啟用交換分區:
#swapon/swapfile1
d寫入/etc/fstab,以便在引導時啟用:
/swapfile1swapswapdefaults00
新添了交換分區並啟用它之後,請查看cat/proc/swaps或free命令的輸出來確保交換分區已被啟用了。
3.刪除交換空間:
a禁用交換分區:
#swapoff/dev/sdb2
b從/etc/fstab中刪除項目;
c使用fdisk或yast工具刪除分區。