Linux 執行個體執行個體儲存交換磁碟 - Amazon Elastic Compute Cloud

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

Linux 執行個體執行個體儲存交換磁碟

注意

本主題僅適用於 Linux 執行個體。

當系統需要比實體配置更多的記憶體時,可以使用 Linux 的置換空間。啟用置換空間時,Linux 系統可以將不常使用的記憶體分頁,從實體記憶體換到置換空間 (專用磁區或是現有檔案系統中的調換檔),以釋出空間,給需要高速存取的記憶體分頁使用。

注意

使用置換空間來做為記憶體分頁時,其速度和效率並不如使用 RAM。如果工作負載會定期將分頁記憶體換到置換空間中,您應考慮轉而使用較大的執行個體類型和更多的 RAM。如需詳細資訊,請參閱 變更執行個體類型

c1.mediumm1.small 執行個體類型可用的實體記憶體數量有限,且啟動時會獲得 900 MB 置換磁碟區做為 Linux AMIs 的虛擬記憶體。雖然 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 置換磁區,其他的部分則做為資料磁碟區。

注意

此程序僅適用於支援執行個體儲存體的執行個體類型。如需支援的執行個體類型清單,請參閱 執行個體儲存體磁碟區

  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