

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

# 啟用 M1 和 C1 EC2 執行個體的執行個體儲存體交換磁碟區
<a name="instance-store-swap-volumes"></a>

**注意**  
本主題僅適用於 `c1.medium` 和 `m1.small` Linux 執行個體。

`c1.medium` 和 `m1.small` 執行個體類型的實體記憶體數量有限。因此，其會在啟動時被授予 900 MiB 交換磁碟區，作為 Linux 系統的虛擬記憶體或*交換空間*。當系統需要比實體配置更多的記憶體時，可以使用 Linux 的置換空間。啟用置換空間時，Linux 系統可以將不常使用的記憶體分頁，從實體記憶體換到置換空間 (專用磁區或是現有檔案系統中的調換檔)，以釋出空間，給需要高速存取的記憶體分頁使用。

**注意**  
使用置換空間來做為記憶體分頁時，其速度和效率並不如使用 RAM。如果工作負載會定期將分頁記憶體換到置換空間中，您應考慮轉而使用較大的執行個體類型和更多的 RAM。如需詳細資訊，請參閱[Amazon EC2 執行個體類型變更](ec2-instance-resize.md)。
雖然 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 執行個體的執行個體儲存體磁碟區限制](instance-store-volumes.md)。

1. <a name="step_swap_start"></a>列出連結至執行個體的區塊型儲存設備，以取得執行個體存放磁碟區的裝置名稱。

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

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

   ```
   [ec2-user ~]$ sudo umount /dev/xvdb
   ```

1. <a name="step_mkswap"></a>使用 **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
   ```

1. 啟用新的置換空間。

   ```
   [ec2-user ~]$ sudo swapon /dev/xvdb
   ```

1. <a name="step_swap_enable"></a>確認新的置換空間正在使用。

   ```
   [ec2-user ~]$ swapon -s
   Filename				Type		Size	Used	Priority
   /dev/xvdb                              	partition	4188668	0	-1
   ```

1. 編輯 `/etc/fstab` 檔案，讓此一置換空間在每次系統開機時自動啟用。

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

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

   ```
   /dev/{{xvdb}}       none    swap    sw  0       0
   ```
**重要**  
當執行個體停止或休眠時，執行個體存放磁碟區上的資料會遺失；這包括在 [Step 3](#step_mkswap) 中所建立的執行個體存放區置換空間格式。如果停止和重新啟動執行個體，而此執行個體已設定使用執行個體存放區置換空間，則您必須在新的執行個體存放磁碟區上，重複執行 [Step 1](#step_swap_start) 到 [Step 5](#step_swap_enable)。