天天看點

Linux Swap交換區的建立

自打用起Ubuntu, 每隔一陣子就出現系統無響應,伴随機器狂轉。後發現是因為沒有設定交換區(Swap)。

百度谷歌了半天,總結如下:

1 首先要确認有沒有設定交換區

$ cat /proc/meminfo |grep Swap
SwapCached:            0 kB
SwapTotal:       4047196 kB
SwapFree:        4047196 kB
           

如果以上後兩項的值均為0,則沒有設定。

2 若沒設定,要選擇建立swap的方式

有兩種:1 磁盤分區 2 檔案

2.1 如果有一塊空閑的磁盤空間,則打開磁盤管理,建立一個ext4類型的分區

Linux Swap交換區的建立

然後選擇“編輯分區(Edit Partition)”,選擇Linux Swap(0x82)。

Linux Swap交換區的建立

然後執行:

$mkswap /dev/sda6
$swapon /dev/sda6
           

具體裝置符可能不同,可以在磁盤管理界面中看到。

現在,再執行

2.2 如果沒有空閑磁盤空間,可以選擇建立swap檔案。(以下指令節選自http://os.51cto.com/art/201212/372860.htm)

這裡要注意先看看/下有沒有足夠空間:

$df -h
           

确認後:

$sudo dd if=/dev/zero of=/mnt/Swap.disk bs=1M count=4k<span style="color:#FF0000;"> (count=1k建立1G的Swap,如果要建立4G則count=4k;這步比較慢)</span>
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 131.995 s, 32.5 MB/s
$sudo mkswap -f /mnt/Swap.disk
$sudo swapon /mnt/Swap.disk
           

大小可參考記憶體的一倍到兩倍,網上衆說紛纭,理論型建議兩倍,實踐型建議小一些,畢竟現在記憶體怎麼也有4G。

下一步是讓配置永久生效:

1 對于基于磁盤分區的情況,要先查找swap分區的UUID

$ sudo blkid
/dev/sda1: UUID="BC543D4C543D0B22" TYPE="ntfs"
/dev/sda5: UUID="fc881848-f0bb-40b7-8962-1b49eaace3ff" TYPE="ext4"
/dev/sdb5: LABEL="Mov195G" UUID="96098278199E3ED4" TYPE="ntfs"
/dev/sdb6: LABEL="Data" UUID="429C716D9C715C7B" TYPE="ntfs"
/dev/sda6: UUID="<span style="color:#FF0000;">4d39241a-e46b-4869-af0c-e1888d6dfa72</span>" TYPE="ext4" LABEL="swap" 
           

2 加入到系統的fstab中

$ <span style="font-size:18px;">sudo gedit /etc/fstab</span>
           

在最後加入下列内容,紅色部分為Swap分區的UUID

UUID=<span style="color:#FF0000;">4d39241a-e46b-4869-af0c-e1888d6dfa72</span>  none            swap    sw                0      0
           

/mnt/Swap.disk none            swap    sw                0      0
           

另外,關于配置swapiness的更多參考見:

http://www.linuxidc.com/Linux/2013-03/80208.htm

http://os.51cto.com/art/201212/372860.htm

繼續閱讀