為 M1 和 C EC2 1 執行個體啟用執行個體存放區交換磁碟區 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為 M1 和 C EC2 1 執行個體啟用執行個體存放區交換磁碟區

注意

本主題僅適用c1.mediumm1.small Linux 執行個體。

c1.mediumm1.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。裝置可能需有不同的名稱,例如 sda3sde3xvde3。在下列的指令中使用系統的裝置名稱。

[ec2-user ~]$ sudo swapon /dev/xvda3

現在置換空間應該會顯示 lsblkswapon -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執行個體的執行個體儲存容量

  1. 列出連結至執行個體的區塊型儲存設備,以取得執行個體存放磁碟區的裝置名稱。

    [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 作業系統都會自動執行這項動作。

  2. (選用) 如果執行個體存放磁碟區已掛載 (會在 MOUNTPOINT 命令輸出中列出 lsblk),請利用下列指令來卸載該磁碟區。

    [ec2-user ~]$ sudo umount /dev/xvdb
  3. 使用 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
  4. 啟用新的置換空間。

    [ec2-user ~]$ sudo swapon /dev/xvdb
  5. 確認新的置換空間正在使用。

    [ec2-user ~]$ swapon -s Filename Type Size Used Priority /dev/xvdb partition 4188668 0 -1
  6. 編輯 /etc/fstab 檔案,讓此一置換空間在每次系統開機時自動啟用。

    [ec2-user ~]$ sudo vim /etc/fstab

    如果 /etc/fstab 檔案具有 /dev/xvdb (或 /dev/sdb) 的項目,請修改為和下列行相同;如果該檔案不具有此裝置的項目,請將下列行附加於 /etc/fstab 檔案之後 (讓系統使用置換裝置的名稱):

    /dev/xvdb none swap sw 0 0
    重要

    當執行個體停止或休眠時,執行個體存放磁碟區上的資料會遺失;這包括在 步驟 3 中所建立的執行個體存放區置換空間格式。如果停止和重新啟動執行個體,而此執行個體已設定使用執行個體存放區置換空間,則您必須在新的執行個體存放磁碟區上,重複執行 步驟 1步驟 5