我想使用硬碟上的分割區配置記憶體以用作 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的交換空間。
簡短說明
若要將記憶體配置為交換空間,請完成下列動作:
- 計算交換空間大小。
- 在硬碟上建立一個分割區作為交換空間。
- 設定交換區。
您也可以建立用作交換空間的交換檔案。如需詳細資訊,請參閱如何配置記憶體以用作 Amazon EC2 執行個體中的交換空間?
**注意:**RAM 容量已滿時,執行個體會使用交換空間。交換空間可用於具有少量 RAM 的執行個體,但不能取代更多 RAM。由於交換空間位於執行個體的硬碟上,因此效能比實際 RAM 更低。若要增加或更快的記憶體,請增加執行個體大小。
如需更多有關交換空間的資訊,請參閱 Red Hat 網站上的交換空間。
解決方法
計算交換空間大小
最佳實務是讓交換空間等於實體 RAM 的兩倍,最多可以使用 2 GB 的實體 RAM。對於任何大於 2 GB 的數量,請增加額外 0.5 倍的實體 RAM。最佳實務是不要讓交換空間降到 32 MB 以下。請參閱下表以計算交換空間大小:
| |
---|
系統 RAM 容量 | 建議的交換空間 |
2 GiB 或以下 | RAM 容量的 2 倍,但永不小於 32 MB |
超過 2 GiB,但低於 64 GiB | RAM 容量的 0.5 倍 |
超過 64 GiB | 取決於工作負載或使用案例 |
在硬碟上建立一個分割區作為交換空間
若要在硬碟上建立分割區作為交換空間,請完成下列步驟:
-
使用 AWS System Manager 或 SSH 登入執行個體。
-
列出可用的磁碟區:
sudo fdisk -l
-
從清單中選取要分區的裝置。在此範例中,使用裝置 /dev/xvda。
sudo fdisk /dev/xvda
-
建立新的分割區:
\-> n
-
選取分割區類型。在此範例中,使用主要:
\-> p
-
指派分割區編號。在此範例中,使用分割區 2:
\-> 2
-
按下 Enter 接受「第一個區段」的預設值。
-
輸入交換檔案的大小。針對此案例,有 2 GB 的 RAM。您建立的分割區為 4 GB(指定為 +4G)。
\-> +4G
-
儲存並結束:
\-> w
設定交換區
若要設定交換區,請完成下列步驟:
-
使用 partprobe 命令通知作業系統關於分割區資料表的變更:
partprobe
-
使用您在上一步驟中建立的交換分割區來設定 Linux 交換區域。在下列範例中,交換分割區為 /dev/xvda2。
mkswap /dev/xvda2
-
將分割區新增為交換空間:
sudo swapon /dev/xvda2
-
顯示目前交換空間:
sudo swapon -s
輸出看起來類似下列範例:
Filename Type Size Used Priority/dev/xvda2 partition 4194300 0 -1
-
重新啟動後,請完成下列步驟,使交換記憶體配置永久生效:
從 blkid 命令列印 UUID:
sudo blkid
從上一個輸出複製交換分割區的 UUID。使用文字編輯器,例如 vi 或 nano,將以下內容新增至 /etc/fstab 檔案中:
UUID=xxxxxxx none swap SW 0 0
-
儲存檔案,然後執行重新開機。
重新啟動作業系統後,請使用 free-h 命令來確認交換記憶體配置是否仍然存在。