增加 Swap 空間

回覆文章
yehlu
Site Admin
文章: 3245
註冊時間: 2004-04-15 17:20:21
來自: CodeCharge Support Engineer

增加 Swap 空間

文章 yehlu »

http://php5.idv.tw/documents/redhatTW/R ... dding.html

有時候需要在安裝後增加更多的 swap 空間,舉例來說,您也許會將系統的 RAM 從 64MB 升級為 128MB,不過 swap 的空間只有 128MB,如果您需要執行需要大量記憶體的應用程式或操作,這時候就有必要將 swap 的空間增大至 256MB。

在此您有兩種選擇: 增加一個 swap 分割區或增加一個 swap 檔案。 建議您新增一個 swap 分割區,不過如果您沒有任何可用的空間,將很難做到。

如要新增一個 swap 分割區(假設 /dev/hdb2 為您想新增的 swap 分割區),請依照下列的指示:

1.

硬碟不可以正在使用中(分割區不能被掛載中,而且不能啟用 swap 空間)。 要做到這樣最簡單的方法是將您的系統開機至『救援模式』,請參考 第9章 以取得開機進入救援模式的指示。 在提示您掛載檔案系統時,請選擇 略過。

除此之外,假如該磁碟不包含任何使用中的分割區,您可以卸載它們,然後使用 swapoff 指令來關閉硬碟上所有的 swap 空間。
2.

可以使用 parted 或 fdisk 來建立 swap 分割區,使用 parted 會比 fdisk 容易,因此在這裡只有解釋 parted。 如要使用 parted 來建立一個 swap 分割區,請遵照以下指示:

*

以 root 身份在 shell 提示符號下輸入 parted /dev/hdb 指令,這裡的 /dev/hdb 是含有剩餘空間之硬碟的裝置名稱。
*

在 (parted) 的提示符號下輸入 print 來檢視既有的分割區以及剩餘的空間。 在此,起點與終點的數值是以 MB 表示的,請找出硬碟上所剩餘的空間以及您要分配多少空間給新的 swap 分割區。
*

在 (parted) 的提示符號下輸入 mkpartfs part-type linux-swap start end,這裡的 part-type 是 primary, extended 或 logical 的其中一種,start 是分割區的起始點,而 end 為分割區的結束點。

警告 警告


變更將立即生效,在輸入時請特別小心。
*

輸入 quit 以離開 parted。
3.

現在,您的 swap 分割區就建立好了,請使用 mkswap 指令來設定該 swap 分割區,以 root 身份在 shell 提示符號下輸入以下指令:

代碼: 選擇全部

mkswap /dev/hdb2
4.

如要立即啟用該 swap 分割區,請輸入以下指令:

代碼: 選擇全部

swapon /dev/hdb2
5.

如要在開機時啟用它,請編輯 /etc/fstab 檔案以包含下列這一行:

代碼: 選擇全部

/dev/hdb2               swap                    swap    defaults        0 0
下次系統開機時,將會啟用新的 swap 分割區。
6.

在新增完 swap 分割區然後啟用它後,請使用 cat /proc/swaps 或 free 指令來檢視它們的輸出以確定它已經被啟用。

如要新增一個 swap 檔案:

1.

請先決定新 swap 檔案的大小,然後乘以 1024 以取得磁碟區塊(block)的大小,例如 64MB 之 swap 檔案的區塊大小為 65536。
2.

請以 root 身份在 shell 提示符號下輸入下列指令,並包括 count 等於區塊大小的數值:

代碼: 選擇全部

dd if=/dev/zero of=/swapfile bs=1024 count=65536
3.

並使用以下指令來設定 swap 檔案:

代碼: 選擇全部

mkswap /swapfile
4.

如要立即啟用 swap 檔案(非開機時自動啟動),請使用下列指令:

代碼: 選擇全部

 swapon /swapfile 
5.

如要在開機時啟動它,請編輯 /etc/fstab 以包含:

代碼: 選擇全部

 /swapfile               swap                    swap    defaults        0 0
下次系統開機時,它將會啟用新的 swap 檔案。
6.

在增加新的 swap 檔案並啟用它後,請檢視

代碼: 選擇全部

cat /proc/swaps 

代碼: 選擇全部

free
指令的輸出以確定它已經被啟用。
回覆文章

回到「Linux」