本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用 M1 和 C1 EC2 執行個體的執行個體存放區交換磁碟區
注意
本主題僅適用於 c1.medium
和 m1.small
Linux 執行個體。
c1.medium
和 m1.small
執行個體類型的實體記憶體數量有限。因此,在啟動時會為其提供 900 MiB 交換磁碟區,以做為 Linux 系統的虛擬記憶體或交換空間。當系統需要比實體配置更多的記憶體時,可以使用 Linux 的置換空間。啟用置換空間時,Linux 系統可以將不常使用的記憶體分頁,從實體記憶體換到置換空間 (專用磁區或是現有檔案系統中的調換檔),以釋出空間,給需要高速存取的記憶體分頁使用。
注意
-
使用記憶體分頁的交換空間不如使用 RAM 那麼快或有效。如果您的工作負載經常將記憶體分頁到交換空間,您應該考慮遷移到具有更多 RAM 的大型執行個體類型。如需詳細資訊,請參閱Amazon EC2執行個體類型變更。
-
雖然 Linux 核心將此置換空間視為根設備上的分割區,但該空間實際上為獨立的執行個體存放磁碟區,而不論根設備磁碟區是何種類型。
Amazon Linux 會自動啟用和使用此交換空間,但您的 AMI 可能需要一些額外的步驟來識別和使用此交換空間。若要查看執行個體是否正在使用置換空間,您可以使用 swapon -s 命令。
[ec2-user ~]$
swapon -s
Filename Type Size Used Priority /dev/xvda3 partition 917500 0 -1
上述的執行個體連結和啟用了 900 MiB 的智慧磁碟區。如果使用此指令未列出置換磁碟區,可能需要啟用該設備的置換空間。使用 lsblk 命令來檢查可用的磁碟。
[ec2-user ~]$
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda1 202:1 0 8G 0 disk / xvda3 202:3 0 896M 0 disk
在此處,置換磁碟區 xvda3
可供執行個體使用,但是並未啟用 (請注意,MOUNTPOINT
欄位為空白)。您可以利用 swapon 命令來啟用置換磁碟區。
注意
您必須在 /dev/
命令所列出的裝置名稱前方,加上 lsblk。裝置可能需有不同的名稱,例如 sda3
、sde3
或 xvde3
。在下列的指令中使用系統的裝置名稱。
[ec2-user ~]$
sudo swapon /dev/xvda3
現在置換空間應該會顯示 lsblk 和 swapon -s 輸出中。
[ec2-user ~]$
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda1 202:1 0 8G 0 disk / xvda3 202:3 0 896M 0 disk [SWAP]
[ec2-user ~]$
swapon -s
Filename Type Size Used Priority /dev/xvda3 partition 917500 0 -1
您也需要編輯 /etc/fstab
檔案,讓此一置換空間在每次系統開機時自動啟用。
[ec2-user ~]$
sudo vim /etc/fstab
將下列的指令行附加到 /etc/fstab
檔案之後 (使用系統的置換裝置名稱):
/dev/xvda3
none swap sw 0 0
將執行個體存放磁碟區做為置換空間使用
任何執行個體存放磁碟區皆可做為置換空間使用。例如,m3.medium
執行個體類型包含適合交換空間的 4 GB SSD 執行個體存放區磁碟區。如果執行個體存放磁碟區的容量大上許多 (例如 350 GB),您可以考慮將磁碟區分割出一個較小的 4 到 8 GB 置換磁區,其他的部分則做為資料磁碟區。
注意
此程序僅適用於支援執行個體儲存體的執行個體類型。如需支援的執行個體類型清單,請參閱 EC2 執行個體的執行個體存放區磁碟區限制。
-
列出連結至執行個體的區塊型儲存設備,以取得執行個體存放磁碟區的裝置名稱。
[ec2-user ~]$
lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/xvdb 202:16 0 4G 0 disk /media/ephemeral0 /dev/xvda1 202:1 0 8G 0 disk /
在此範例中,執行個體存放磁碟區為
/dev/xvdb
。因為這是 Amazon Linux 執行個體,因此執行個體存放磁碟區會經過格式化並掛載於/media/ephemeral0
;不是所有的 Linux 作業系統都會自動執行這項動作。 -
(選用) 如果執行個體存放磁碟區已掛載 (會在
MOUNTPOINT
命令輸出中列出 lsblk),請利用下列指令來卸載該磁碟區。[ec2-user ~]$
sudo umount /dev/xvdb
-
使用 mkswap 命令,在裝置上設定 Linux 置換區。
[ec2-user ~]$
sudo mkswap /dev/xvdb
mkswap: /dev/xvdb: warning: wiping old ext3 signature. Setting up swapspace version 1, size = 4188668 KiB no label, UUID=b4f63d28-67ed-46f0-b5e5-6928319e620b
-
啟用新的置換空間。
[ec2-user ~]$
sudo swapon /dev/xvdb
-
確認新的置換空間正在使用。
[ec2-user ~]$
swapon -s
Filename Type Size Used Priority /dev/xvdb partition 4188668 0 -1
-
編輯
/etc/fstab
檔案,讓此一置換空間在每次系統開機時自動啟用。[ec2-user ~]$
sudo vim /etc/fstab
如果
/etc/fstab
檔案具有/dev/xvdb
(或/dev/sdb
) 的項目,請修改為和下列行相同;如果該檔案不具有此裝置的項目,請將下列行附加於/etc/fstab
檔案之後 (讓系統使用置換裝置的名稱):/dev/
xvdb
none swap sw 0 0