我想使用硬碟上的分割區配置記憶體以用作 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的交換空間。我該怎麼做?
簡短描述
若要將記憶體配置為交換空間,請執行下列動作:
1. 計算交換空間大小。
2. 在硬碟上建立一個分割區作為交換空間。
3. 設定交換區域。
您也可以建立用作交換空間的交換檔案。如需詳細資訊,請參閱如何使用交換檔案配置記憶體以用作 Amazon EC2 執行個體中的交換空間?
**注意:**RAM 容量已滿時,執行個體會使用交換空間。交換空間可用於具有少量 RAM 的執行個體,但不能取代更多 RAM。由於交換空間位於執行個體的硬碟上,因此效能低於實際 RAM。如需更多或更快的記憶體,請考慮增加執行個體大小。
解決方法
計算交換空間大小
最佳實務是交換空間等於實體 RAM 的 2 倍,最多可容納 2 GB 的實體 RAM。對於超過 2 GB 的任何容量,請新增一個額外的 1x 實體 RAM。最佳實務是交換空間永遠不小於 32 MB。
| |
---|
系統 RAM 容量 | 建議的交換空間 |
2 GiB RAM 或更少 | RAM 容量的 2 倍,但永不小於 32 MB |
超過 2 GiB RAM,但小於 64 GiB | RAM 容量的 0.5 倍 |
超過 64 GiB | 取決於工作負載或使用案例 |
在硬碟上建立一個分割區作為交換空間
1. 使用 SSH 登入執行個體。
2. 列出可用的磁碟區:
$ sudo fdisk -l
3. 從清單中選取要分區的裝置。在此範例中,使用裝置 /dev/xvda。
$ sudo fdisk /dev/xvda
4. 建立新的分割區:
-> n
5. 選取分割區類型。在此範例中,使用主要:
-> p
6. 指派分割區編號。在此範例中,使用分割區 2:
-> 2
7. 透過按下 Enter 鍵接受「第一個磁區」的預設值。
8. 輸入交換檔案的大小。在此範例中,有 2 GB RAM,而建立的分割區為 4 GB (指定為 +4G)。
-> +4G
9. 儲存並結束:
-> w
設定交換區
1. 使用 partprobe 命令通知作業系統關於分割區表格變更:
$ partprobe
2. 使用您在上述步驟中建立的交換分割區來設定 Linux 交換區域。在此範例中,交換分割區為 /dev/xvda2。
$ mkswap /dev/xvda2
3. 將分割區新增為交換空間:
$ sudo swapon /dev/xvda2
4. 顯示目前交換空間:
$ sudo swapon -s
然後出現類似下列內容的輸出:
Filename Type Size Used Priority
/dev/xvda2 partition 4194300 0 -1
5. 使用下列命令,使交換記憶體配置在重新開機之後永久生效:
**注意:**如果 xvda2 不是您的交換裝置名稱,請用環境中的交換裝置名稱取代此詞彙。
$ cp /etc/fstab /etc/fstab_$(date +%Y%m%d%H%M%S)
$ cat <<EOF >> /etc/fstab
`sudo blkid /dev/xvda2 | grep -Eo '[[:alnum:]]{8}(-[[:alnum:]]{4}){3}-[[:alnum:]]{12}'` swap swap defaults 0 0
EOF
$ reboot
相關資訊
交換空間