首頁 >系統教程 >Linux >簡單操作:在Linux中使用交換分割區

簡單操作:在Linux中使用交換分割區

王林
王林轉載
2024-01-09 15:46:36704瀏覽
導讀 使用者可以在任何 Linux 作業系統的安裝過程中或是其它必要的時候建立交換空間。如果你在安裝 Linux 的時候忘記了創建或是你想要再增加交換分割區的空間,你隨時都可以再建立或增加。

有時候在你安裝後搖升級RAM 的時候需要增加一點交換分割區的空間,例如你要將你的系統的RAM 從1GB 升級到2GB 你,那麼你就必須將你的交換分割區空間也升級一下(從2GB 到4GB),這是因為它使用的容量是實體RAM 的雙倍容量。 (LCTT 譯註:其實這裡是個誤區,交換分區不一定非得是雙倍的物理內存容量,只是慣例如此。事實上,如果你的物理內存足夠的話,你完全可以不用交換分區——在這裡的情形下,或許你增加了實體內存,就沒必要增加交換分區大小了。)

交換空間是當實體記憶體(RAM 隨機存取記憶體)的用量已滿時,保留用作虛擬記憶體的磁碟上的空間。如果系統在 RAM 滿載時需要更多的記憶體資源,記憶體中的非活動頁面將被移動到交換空間,這樣可以幫助系統運行應用程式更多的時間,但不應該把它當作 RAM 的擴充。

建議你建立一個專用的交換分割區,但如果你沒有可用的分割區,那麼可以使用交換文件,或交換分割區和交換文件的組合。交換空間通常建議使用者至少 4 GB,使用者也可以根據自己的要求和環境創建交換空間。

我發現大部分 VM 和 雲端伺服器都沒有交換分區,所以在這種情況下,我們可以使用以下三種方法創建,擴展或增加交換空間。

如何偵測目前交換分割區大小

透過 free & swapon 指令來偵測目前的交換分割空間的大小。

$ free -h

total used free shared buff/cache available

Mem: 2.0G 1.3G 139M 45M 483M 426M

Swap: 2.0G 655M 1.4G

$ swapon --show

NAME TYPE SIZE USED PRIO

/dev/sda5 partition 2G 655.2M -1

上面的輸出顯示了目前的交換分割空間是 2GB 。

方法 1 : 透過 fallocate 指令建立交換檔案

fallocate 程式是立即建立預先指派大小的檔案的最佳方法。

下面這個指令會建立一個 1GB 大小 的 /swapfile。

$ sudo fallocate -l 1G /swapfile

檢查一下建立的檔案的大小是否正確。

$ ls -lh /swapfile

-rw-r--r-- 1 root root 1.0G Jun 7 09:49 /swapfile

將該檔案的權限設定為 600 這樣只有 root 使用者可以存取這個檔案。

$ sudo chmod 600 /swapfile

透過執行以下的命令來將此檔案轉換為交換檔案。

$ sudo mkswap /swapfile

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)

no label, UUID=cda50e0e-41f3-49c7-af61-b8cb4a33a464

透過執行以下的命令來使交換文件生效。

$ sudo swapon /swapfile

將新建立的交換檔案新增到 fstab 檔案中,這樣交換分割區空間的修改即使在重新啟動後也可以生效。

$ vi /etc/fstab

/swapfile swap swap defaults 0 0

檢查一下新建立的交換文件。

$ swapon --show

NAME TYPE SIZE USED PRIO

/dev/sda5 partition 2G 657.8M -1

/swapfile file 1024M 0B -2

現在我可以看到一個新的  1GB 的 /swapfile1 檔案了。重新啟動系統以使新的交換文件生效。

方法 2 : 透過 dd 指令來建立交換檔案

dd 命令是另一個實用程序,可以幫助我們立即建立預先分配大小的檔案。

以下 dd 指令將建立 1GB 的 /swapfile1。

$ sudo dd if=/dev/zero of=/swapfile1 bs=1G count=1

1+0 records in

1+0 records out

1073741824 bytes (1.1 GB, 1.0 GiB) copied, 16.6154 s, 64.6 MB/s

詳解: if=/dev/zero 是輸入文件,/dev/zero 是類 Unix 作業系統中的一個特殊文件,它提供從它讀取的盡可能多的空字元(ASCII NUL,0x00)。

of=/swapfile1 設定輸出檔。

bs=1G 一次讀寫的大小為 1GB

count=1 只複製一個輸入區塊

檢查一下建立的檔案的大小是否正確。

$ ls -lh /swapfile1

-rw-r--r-- 1 root root 1.0G Jun 7 09:58 /swapfile1

將該檔案的權限設定為 600 這樣只有 root 使用者可以存取這個檔案。

$ sudo chmod 600 /swapfile1

透過執行以下的命令來將此檔案轉換為交換檔案。

$ sudo mkswap /swapfile1

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)

no label, UUID=96def6d7-b2da-4954-aa72-aa32316ec993

透過執行以下的命令來使交換文件生效。

$ sudo swapon /swapfile1

將新建立的交換檔案新增到 fstab 檔案中,這樣交換分割區空間的修改即使在重新啟動後也可以生效。

$ vi /etc/fstab

/swapfile1 swap swap defaults 0 0

檢查新建立的交換文件。

$ swapon --show

NAME TYPE SIZE USED PRIO

/dev/sda5 partition 2G 1.3G -1

/swapfile file 1024M 0B -2

/swapfile1 file 1024M 0B -3

現在我可以看到一個新的  1GB 的 /swapfile1 了。重新啟動系統以使新的交換文件生效。

方法 3 : 透過硬碟分割來建立交換檔案

#我們也推薦使用透過硬碟分割的方式來建立交換分割區。

如果你已經在你的另一個硬碟上透過 fdisk 指令建立了一個新的分割區,假設我們已經建立了一個叫做 /dev/sda4 的分割區。

使用 mkswap 指令來將這個分割區轉換成交換分割區。

$ sudo mkswap /dev/sda4

透過執行以下命令來使交換文件生效。

$ sudo swapon /dev/sda4

把新增的交換檔案加入到 fstab 檔案中,這樣即使是重新啟動了系統交換分割區的修改也能生效。

$ vi /etc/fstab

/dev/sda4 swap swap defaults 0 0

檢查新建立的交換文件。

$ swapon --show

NAME TYPE SIZE USED PRIO

/dev/sda5 partition 2G 1.3G -1

/swapfile file 1024M 0B -2

/swapfile1 file 1024M 0B -3

/dev/sda4 partition 1G 0B -4

我可以看到新的交換分割區 1GB 的 /dev/sda4。重啟系統就可以使用新的交換分割區了。

以上是簡單操作:在Linux中使用交換分割區的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:linuxprobe.com。如有侵權,請聯絡admin@php.cn刪除