交換分區在實體記憶體(RAM)被填滿時用來保持記憶體中的內容。當 RAM 被耗盡,Linux 會將記憶體中不活動的頁移到交換空間中,從而空出記憶體給系統使用。雖然如此,但交換空間不應被認為是實體記憶體的替代品。
大多數情況下,建議交換記憶體的大小為實體記憶體的 1 到 2 倍。也就是說如果你有 8GB 記憶體, 那麼交換空間大小應該介於8-16 GB。
若係統中沒有配置交換分區,當記憶體耗盡後,系統可能會殺死正在運行中的進程/應用,導致系統崩潰。在本文中,我們將學習如何為 Linux 系統新增交換分割區,我們有兩個方法:
#通常,系統的第一塊硬碟會被命名為/dev/sda,而其中的分割區會命名為/dev/sda1 、 /dev/ sda2。本文我們使用的是一塊有兩個主分割區的硬碟,兩個分割區分別為/dev/sda1、 /dev/sda2,而我們使用/dev/ sda3 來做交換分割區。
先建立一個新分割區,
$ fdisk /dev/sda
按 n 來建立新分割區。系統會詢問你從哪個柱面開始,直接按回車鍵使用預設值即可。然後系統詢問你到哪個柱面結束, 這裡我們輸入交換分區的大小(例如 1000MB)。這裡我們輸入 1000M。
#swap
現在我們建立了一個大小為 1000MB 的磁碟了。但是我們並沒有設定該分區的類型,我們按下 t 然後回車,來設定分區類型。
現在我們要輸入分割區編號,這裡我們輸入3,然後輸入磁碟分類號,交換分割區的分割區類型為82 (要顯示所有可用的分割區類型,按下l ) ,然後再按下w 儲存磁碟分割表。
#swap
再下一步使用 mkswap 指令來格式化交換分割區:
$ mkswap /dev/sda3
然後啟動新建的交換分割區:
$ swapon /dev/sda3
然而我們的交換分割區在重啟後並不會自動掛載。要做到永久掛載,我們需要將內容新增到 /etc/fstab 檔案中。開啟 /etc/fstab 檔案並輸入下方行:
$ vi /etc/fstab /dev/sda3 swap swap default 0 0
儲存並關閉檔案。現在每次重啟後都能使用我們的交換分割區了。
我推荐用这种方法因为这个是最简单、最快速的创建交换空间的方法了。fallocate 是最被低估和使用最少的命令之一了。 fallocate 命令用于为文件预分配块/大小。
使用 fallocate 创建交换空间,我们首先在 / 目录下创建一个名为 swap_space 的文件。然后分配 2GB 到 swap_space 文件:
$ fallocate -l 2G /swap_space
我们运行下面命令来验证文件大小:
$ ls -lh /swap_space
然后更改文件权限,让 /swap_space 更安全:
$ chmod 600 /swap_space
这样只有 root 可以读写该文件了。我们再来格式化交换分区(LCTT 译注:虽然这个 swap_space 是个文件,但是我们把它当成是分区来挂载):
$ mkswap /swap_space
然后启用交换空间:
$ swapon -s
每次重启后都要重新挂载磁盘分区。因此为了使之持久化,就像上面一样,我们编辑 /etc/fstab 并输入下面行:
/swap_space swap swap sw 0 0
保存并退出文件。现在我们的交换分区会一直被挂载了。我们重启后可以在终端运行 free -m 来检查交换分区是否生效。
以上是創建交換分區的兩個命令的詳細內容。更多資訊請關注PHP中文網其他相關文章!