儲存最佳化執行個體 - Amazon Elastic Compute Cloud

儲存最佳化執行個體

最佳化儲存執行個體專為需要對本機儲存上的超大型資料集進行高序列讀取及寫入存取的工作量所設計,這些執行個體經過最佳化,能為應用程式提供每秒數萬次低延遲隨機的 I/O 操作 (IOPS)。

D2 執行個體

這些執行個體非常適合下列各項:

  • 大量平行處理 (MPP) 資料倉儲

  • MapReduce 和 Hadoop 分散式運算

  • 日誌或資料處理應用程式

H1 執行個體

這些執行個體非常適合下列各項:

  • 資料密集型工作負載,例如 MapReduce 和分散式檔案系統

  • 需要循序存取直接連接執行個體儲存體上之大量資料的應用程式

  • 需要以高傳輸量存取大量資料的應用程式

I3 和 I3en 執行個體

這些執行個體非常適合下列各項:

  • 高頻率線上交易處理 (OLTP) 系統

  • 關聯式資料庫

  • NoSQL 資料庫

  • 記憶體內快取資料庫 (例如,Redis)

  • 資料倉儲應用程式

  • 分散式檔案系統

裸機執行個體讓您的應用程式可以直接存取主機伺服器的實體資源,例如處理器與記憶體。這些執行個體非常適合下列各項:

  • 需要存取低階硬體功能 (例如 Intel VT) 的工作負載 (在虛擬化環境中無法使用或未完整支援這些工作負載)

  • 需要非虛擬化環境以取得授權或支援的應用程式

如需詳細資訊,請參閱 Amazon EC2 I3 執行個體

硬體規格

D2 執行個體的主要資料儲存體為 HDD 執行個體存放磁碟區。I3 和 I3en 執行個體的主要資料儲存體為非揮發性記憶體儲存裝置 (NVMe) SSD 執行個體存放磁碟區。

只有在執行個體的週期期間,才會持續保存執行個體存放磁碟區。當您讓執行個體停止、休眠或終止時,執行個體存放區磁碟區中的應用程式和資料都會清除。建議您定期備份或複寫執行個體存放磁碟區中的重要資料。如需更多詳細資訊,請參閱 Amazon EC2 執行個體存放區SSD 執行個體存放區磁碟區

下列是儲存最佳化執行個體的硬體規格摘要。

執行個體類型 預設 vCPU 記憶體 (GiB)
d2.xlarge 4 30.5
d2.2xlarge 8 61
d2.4xlarge 16 122
d2.8xlarge 36 244
h1.2xlarge 8 32
h1.4xlarge 16 64
h1.8xlarge 32 128
h1.16xlarge 64 256
i3.large 2 15.25
i3.xlarge 4 30.5
i3.2xlarge 8 61
i3.4xlarge 16 122
i3.8xlarge 32 244
i3.16xlarge 64 488
i3.metal 72 512
i3en.large 2 16
i3en.xlarge 4 32
i3en.2xlarge 8 64
i3en.3xlarge 12 96
i3en.6xlarge 24 192
i3en.12xlarge 48 384
i3en.24xlarge 96 768
i3en.metal 96 768

如需各 Amazon EC2 執行個體類型的硬體規格詳細資訊,請參閱 Amazon EC2 執行個體類型

如需指定 CPU 選項的詳細資訊,請參閱最佳化 CPU 選項

執行個體效能

為了確保 Linux 上執行個體發揮最佳的磁碟傳輸量效能,建議使用最新版的 Amazon Linux 2 或 Amazon Linux AMI。

針對含有 NVMe 執行個體存放磁碟區的執行個體,則必須使用核心版本 4.4 或更新版本的 Linux AMI,否則執行個體將無法達到最高的 IOPS 效能。

D2 執行個體可在使用支援持續授予的 Linux 核心時提供最佳的磁碟效能,持續授予是 Xen 區塊環通訊協定的延伸,它能大幅改善磁碟傳輸量和擴展能力。如需持續授予的詳細資訊,請參閱 Xen 專案部落格中的此文章

EBS 最佳化執行個體藉由免除 Amazon EBS I/O 和您執行個體的其他網路流量之間的競爭,確保您的 EBS 磁碟區擁有一致的高效能。有些儲存最佳化的執行個體預設為 EBS 最佳化,無須額外成本。如需詳細資訊,請參閱 Amazon EBS 最佳化執行個體

有些儲存最佳化的執行個體類型可提供功能,讓您控制 Linux 上的處理器 C-state 和 P-state。C-state 可控制核心在非使用時要進入的休眠等級,而 P-state 可控制所需的核心效能 (CPU 頻率)。如需更多詳細資訊,請參閱 您的 EC2 執行個體處理器狀態控制

網路效能

您可以在支援的執行個體類型上啟用增強型聯網,以提供較低的延遲、較低的網路抖動,以及較高的每秒封包 (PPS) 效能。大多數的應用程式不會一致需要高度的網路效能,但仍可在傳送或接收資料時,享有可存取增加的頻寬這項優點。如需更多詳細資訊,請參閱 Linux 增強型聯網功能

下列是儲存最佳化執行個體的網路效能摘要,這些執行個體支援增強型聯網功能。

執行個體類型 網路效能 增強型聯網
i3.4xlarge 和更小的類型 最高 10 Gbps † ENA
i3.8xlarge | h1.8xlarge 10Gbps ENA
i3en.3xlarge 和更小的 最高 25 Gbps † ENA
i3.16xlarge | i3.metal | i3en.6xlarge | h1.16xlarge 25 Gbps ENA
i3en.12xlarge 50 Gbps ENA
i3en.24xlarge | i3en.metal 100 Gbps ENA
d2.xlarge 適中 Intel 82599 VF
d2.2xlarge | d2.4xlarge Intel 82599 VF
d2.8xlarge 10Gbps Intel 82599 VF

† 這些執行個體使用網路 I/O 點數機制,根據平均頻寬使用率來配置網路頻寬給執行個體。這些執行個體會在其頻寬低於基準頻寬時累算點數,並在執行網路資料傳輸時使用這些點數。如需詳細資訊,請開立支援案例,並詢問您關注的特定執行個體類型的基準頻寬。

SSD I/O 效能

如果您使用核心版本 4.4 或更新版本的 Linux AMI,並使用您執行個體可用的所有 SSD 執行個體存放區磁碟區,您將得到下表中的 IOPS (4,096 位元組區塊大小) 效能 (在佇列深度飽和下)。否則,您將得到更低的 IOPS 效能。

執行個體大小 100% 隨機讀取 IOPS 寫入 IOPS
i3.large *

100,125

35,000

i3.xlarge *

206,250

70,000

i3.2xlarge

412,500

180,000

i3.4xlarge

825,000

360,000

i3.8xlarge

165 萬

720,000

i3.16xlarge

330 萬

140 萬

i3.metal

330 萬

140 萬

i3en.large *

42,500

32,500

i3en.xlarge *

85,000

65,000

i3en.2xlarge *

170,000

130,000

i3en.3xlarge

250,000

200,000

i3en.6xlarge

500,000

400,000

i3en.12xlarge

100 萬

800,000

i3en.24xlarge

200 萬

160 萬

i3en.metal

200 萬

160 萬

* 對於這些執行個體,您可達到最高的指定效能。

隨著 SSD 型執行個體存放區磁碟區越來越滿,I/O 效能會下降。這是因為 SSD 控制器必須執行額外的工作,去尋找可用的空間、重寫現有資料,以及清除未使用的空間以供重寫。這個收集廢棄項目的程序會造成 SSD 的內部寫入放大,也就是 SSD 寫入操作與使用者寫入操作的比例放大。假如寫入操作不是 4,096 位元組的倍數或未符合 4,096 位元組的邊界,效能下降的幅度會更明顯。因為當您寫入少量位元組或未符合的位元組時,SSD 控制器必須讀取週圍的資料並將結果存放到新的位置,此模式會造成寫入放大大幅增加,提高延遲,因而使 I/O 效能巨幅下降。

SSD 控制器利用多項策略來減少寫入放大的影響。其中一項策略,就是在 SSD 執行個體儲存體內保留空間,讓控制器能更有效管理寫入操作可用的空間。此策略稱為過度佈建。提供給執行個體的 SSD 執行個體存放區磁碟區不會保留任何過度佈建的空間。為了減少寫入放大,建議讓 10% 磁碟區保留為未分割,如此 SSD 控制器便不會將其用於過度佈建。這樣做雖然會減少可用的儲存空間,但可提高效能,即使磁碟即將用完所有容量。

使用支援 TRIM 的執行個體存放區磁碟區時,當不再需要已寫入的資料時,可以利用 TRIM 指令來通知 SSD 控制器。這會讓控制器有更多的可用空間能夠使用,可減少寫入放大現象,並提升效能。如需更多詳細資訊,請參閱 執行個體存放區磁碟區 TRIM 支援

執行個體功能

下列是儲存最佳化執行個體的功能摘要:

僅 EBS 執行個體存放區 置放群組

D2

HDD

H1

HDD *

I3

NVMe *

I3en

NVMe *

* 根設備磁碟區必須為 Amazon EBS 磁碟區。

如需詳細資訊,請參閱下列內容:

支援 vCPU

d2.8xlarge 執行個體類型提供 36 個 vCPU,可能會在 vCPU 限制為 32 個的某些 Linux 作業系統上造成啟動問題。我們強烈建議您在啟動 d2.8xlarge 執行個體時使用最新的 AMI。

以下 Linux AMI 支援啟動含 36 個 vCPU 的 d2.8xlarge 執行個體:

  • Amazon Linux 2 (HVM)

  • Amazon Linux AMI 2018.03 (HVM)

  • Ubuntu Server 14.04 LTS (HVM) 或更新版本

  • Red Hat Enterprise Linux 7.1 (HVM)

  • SUSE Linux Enterprise Server 12 (HVM)

如果您的應用程式必須使用不同的 AMI,且 d2.8xlarge 執行個體啟動未成功完成 (例如,當您的執行個體狀態在啟動時因為發生 stopped 狀態轉移原因而變為 Client.InstanceInitiatedShutdown),請依下列程序修改執行個體,使其支援 32 個以上的 vCPU,如此您便能使用 d2.8xlarge 執行個體類型。

更新執行個體以支援 32 個以上的 vCPU

  1. 使用 AMI 啟動 D2 執行個體,選擇 d2.8xlarge 以外的任何其他 D2 執行個體類型。

  2. 依照適用於您作業系統的指示,將核心更新為最新版本。例如,RHEL 6 請使用下列命令:

    sudo yum update -y kernel
  3. 停止執行個體。

  4. (選用) 從用來啟動任何其他日後需要之 d2.8xlarge 執行個體的執行個體建立 AMI。

  5. 將已停止執行個體的執行個體類型變更為 d2.8xlarge (選擇 Actions (動作)Instance Settings (執行個體設定)Change Instance Type (變更執行個體類型),然後依照指示進行)。

  6. 啟動實例。如果執行個體能正常啟動,表示已完成。如果執行個體仍無法正常啟動,請繼續進行下一個步驟。

  7. (選用) 如果執行個體仍無法正常啟動,表示您執行個體上的核心可能不支援 32 個以上的 vCPU。不過,如果限制 vCPU 的數量,也許仍能啟動執行個體。

    1. 將已停止執行個體的執行個體類型變更為 d2.8xlarge 以外的任何 D2 執行個體類型 (選擇 Actions (動作)Instance Settings (執行個體設定)Change Instance Type (變更執行個體類型),然後依照指示進行)。

    2. 依照適用於您作業系統的指示,將 maxcpus=32 選項加入到您的啟動核心參數。例如,如為 RHEL 6,請編輯 /boot/grub/menu.lst 檔案,並將下列選項加入到最新且作用中的 kernel 項目:

      default=0 timeout=1 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.32-504.3.3.el6.x86_64) root (hd0,0) kernel /boot/vmlinuz-2.6.32-504.3.3.el6.x86_64 maxcpus=32 console=ttyS0 ro root=UUID=9996863e-b964-47d3-a33b-3920974fdbd9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 xen_blkfront.sda_is_xvda=1 console=ttyS0,115200n8 console=tty0 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM initrd /boot/initramfs-2.6.32-504.3.3.el6.x86_64.img
    3. 停止執行個體。

    4. (選用) 從用來啟動任何其他日後需要之 d2.8xlarge 執行個體的執行個體建立 AMI。

    5. 將已停止執行個體的執行個體類型變更為 d2.8xlarge (選擇 Actions (動作)Instance Settings (執行個體設定)Change Instance Type (變更執行個體類型),然後依照指示進行)。

    6. 啟動實例。

版本備註

  • 您必須使用 HVM AMI 啟動儲存最佳化執行個體。如需詳細資訊,請參閱Linux AMI 虛擬化類型

  • 建置在 Nitro 系統上的執行個體具有以下要求:

    下列 Linux AMI 符合這些需求:

    • Amazon Linux 2

    • Amazon Linux AMI 2018.03

    • Ubuntu 14.04 (含 linux-aws 核心) 或更新版本

    • Red Hat Enterprise Linux 7.4 或更新版本

    • SUSE Linux Enterprise Server 12 SP2 或更新的版本

    • CentOS 7.4.1708 或更新版本

    • FreeBSD 11.1 或更新版本

    • Debian GNU/Linux 9 或更新版本

  • 啟動裸機執行個體會將基礎伺服器開機,包括驗證所有硬體和韌體元件。這表示從執行個體進入執行中狀態到可在網路上供使用為止,可能需要 20 分鐘。

  • 若要從裸機執行個體連接或卸離 EBS 磁碟區或輔助網路界面,需要 PCIe 原生熱插拔支援。Amazon Linux 2 和最新版的 Amazon Linux AMI 支援 PCIe 原生熱插拔,但舊版本不支援此功能。您必須啟用下列 Linux 核心組態選項:

    CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_PCIEASPM=y
  • 裸機執行個體使用 PCI 型序列裝置,而非 I/O 連接埠型序列裝置。上游 Linux 核心和最新的 Amazon Linux AMI 支援此裝置。裸機執行個體還提供 ACPI SPCR 資料表,可讓系統自動使用 PCI 型序列裝置。最新的 Windows AMI 會自動使用 PCI 型序列裝置。

  • 使用 FreeBSD AMI 時,裸機執行個體開機需要將近一小時,而本機 NVMe 儲存體的 I/O 沒有完成。若要解決這項問題,請將下一行新增至 /boot/loader.conf 並重新開機:

    hw.nvme.per_cpu_io_queues="0"
  • d2.8xlarge 執行個體類型有 36 個 vCPU,可能會在 vCPU 限制為 32 個的某些 Linux 作業系統上造成啟動問題。如需詳細資訊,請參閱 支援 vCPU

  • 您在區域內能夠啟動的執行個體總數有所限制,並且某些執行個體類型有額外的限制。如需詳細資訊,請參閱 Amazon EC2 一般常見問答集中的我可以在 Amazon EC2 中執行多少個執行個體