複製鏈接
請複製以下鏈接發送給好友

SWaP

(Linux系統中的交換分區)

鎖定
SWaP是指Linux系統中的交換分區。
中文名
交換分區
外文名
SWaP
類似於
Windows的虛擬內存
平    台
Linux

SWaP簡介

Linux中Swap(即:交換分區),類似於Windows的虛擬內存,就是當內存不足的時候,把一部分硬盤空間虛擬成內存使用,從而解決內存容量不足的情況。Android是基於Linux的操作系統,所以也可以使用Swap分區來提升系統運行效率 [1] 
交換分區,英文的説法是swap,意思是“交換”、“實物交易”。它的功能就是在內存不夠的情況下,操作系統先把內存中暫時不用的數據,存到硬盤的交換空間,騰出內存來讓別的程序運行,和Windows的虛擬內存(pagefile.sys)的作用是一樣的。

SWaPSWAP分區分析

SWAP就是LINUX下的虛擬內存分區,它的作用是在物理內存使用完之後,將磁盤空間(也就是SWAP分區)虛擬成內存來使用 [1] 
它和Windows系統的交換文件作用類似,但是它是一段連續的磁盤空間,並且對用户不可見。
需要注意的是,雖然這個SWAP分區能夠作為"虛擬"的內存,但它的速度比物理內存可是慢多了,因此如果需要更快的速度的話,並不能寄厚望於SWAP,最好的辦法仍然是加大物理內存。SWAP分區只是臨時的解決辦法.
交換分區(swap)的合理值一般在內存的2倍左右?
一種流行的、以訛傳訛的説法是,安裝Linux系統時,交換分區swap的大小應該是內存的兩倍。也就是説,如果內存是2G,那麼就應該分出4G的硬盤空間作為交換空間。其實這是嚴重的浪費。真實的情況是:可以根據你係統內存的大小,以及所使用的程序,自行決定交換分區的大小,甚至可以完全不用交換分區!
----------------------------------------------------------------------------------------------

SWaP查看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

SWaP添加交換空間

兩種選擇:添加一個交換分區或添加一個交換文件。推薦你添加一個交換分區;不過,若你沒有多少空閒空間可用,則添加交換文件 [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工具刪除分區。
參考資料
  • 1.    劉偉.數據恢復技術深度揭秘:電子工業出版社,2010