Amazon Elastic Compute Cloud
用户指南(适用于 Linux 实例)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

存储优化型实例

存储优化型实例适用于需要对本地存储上的极大型数据集进行高性能顺序读写访问的工作负载。它们经过了优化,可以向应用程序提供每秒上万次低延迟性随机 I/O 操作 (IOPS)。

D2 实例

D2 实例非常适合以下应用程序:

  • 大规模并行处理 (MPP) 数据仓库

  • MapReduce 和 Hadoop 分布式计算

  • 日志或数据处理应用程序

H1 实例

H1 实例非常适合以下应用程序:

  • 数据密集型工作负载,例如,MapReduce 和分布式文件系统

  • 需要顺序访问直接附加的实例存储上的大量数据的应用程序

  • 需要以高吞吐量方式访问大量数据的应用程序

I3 和 I3en 实例

这些实例非常适合以下应用:

  • 高频率联机事务处理 (OLTP) 系统

  • 关系数据库

  • NoSQL 数据库

  • 内存中数据库 (例如,Redis) 的缓存

  • 数据仓库应用程序

  • 分布式文件系统

裸机实例为应用程序提供对主机服务器的物理资源(如处理器和内存)的直接访问。这些实例非常适合:

  • 需要访问虚拟环境中不可用或不完整支持的低级硬件功能 (如 Intel VT) 的工作负载

  • 需要非虚拟化环境进行许可或支持的应用程序

有关更多信息,请参阅 Amazon EC2 I3 实例

硬件规格

D2 实例的主要数据存储是 HDD 实例存储卷。I3 实例的主要数据存储是非易失性存储规范 (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

有关每种 Amazon EC2 实例类型的硬件规格的更多信息,请参阅 Amazon EC2 实例类型

有关指定 CPU 选项的更多信息,请参阅优化 CPU 选项

实例性能

要确保 Linux 上的实例实现最佳磁盘吞吐量性能,建议您使用最新版本的 Amazon Linux 2 或 Amazon Linux AMI。

对于具有 NVMe 实例存储卷的实例,您必须使用内核版本为 4.4 或更高版本的 Linux AMI。否则,您的实例将无法实现可用的最大 IOPS 性能。

如果使用可支持持久授予 (可显著提高磁盘吞吐量和可扩展性的 Xen 数据块环协议的扩展) 的 Linux 内核,D2 实例可提供最佳磁盘性能。有关持久授予的更多信息,请参阅 Xen 项目博客中的文章

通过 EBS 优化的实例,您可以消除 Amazon EBS I/O 与 实例的其他网络流量之间的争用,从而使 EBS 卷持续获得高性能。有些存储优化型实例在默认情况下会进行 EBS 优化,这不会产生额外的费用。有关更多信息,请参阅Amazon EBS 优化的实例

有些存储优化型实例类型提供了在 Linux 上控制处理器 C 状态和 P 状态的功能。C 状态控制当核心处理非活动状态时可以进入的睡眠级别,而 P 状态控制核心的所需性能 (以 CPU 频率的形式)。有关更多信息,请参阅 您的 EC2 实例的处理器状态控制

网络性能

您可以对受支持的实例类型启用增强联网功能。通过增强联网功能,您可以显著提高每秒数据包数 (PPS) 性能,降低网络抖动,并减少延迟。有关更多信息,请参阅 Linux 上的增强联网

使用 Elastic Network Adapter (ENA) 来增强网络的实例类型提供较高的每秒数据包数性能,并始终保持较低的延迟。大多数应用程序并非始终需要较高的网络性能,但较高的带宽有助于其发送或接收数据。使用 ENA 并且使用“最高 10 Gbps”或“最高 25 Gbps”的网络性能记录的实例大小使用一种网络 I/O 积分机制,根据平均带宽利用率为不同实例分配网络带宽。实例在网络带宽低于其基线限制时会积累积分,并能够在执行网络数据传输时使用这些积分。

以下是支持增强联网的存储优化型实例的网络性能摘要。

实例类型 网络性能 增强联网

i3.4xlarge 和更小

最高 10 Gbps,使用网络 I/O 积分机制

ENA

i3.8xlarge | h1.8xlarge

10Gbps

ENA

i3en.3xlarge 和更小

最高 25 Gbps,使用网络 I/O 积分机制

ENA

i3.16xlarge | i3.metal | i3en.6xlarge | h1.16xlarge

25 Gbps

ENA

i3en.12xlarge

50 Gbps

ENA

i3en.24xlarge

100 Gbps

ENA

d2.xlarge

Intel 82599 VF
d2.2xlarge | d2.4xlarge

Intel 82599 VF
d2.8xlarge

10Gbps

Intel 82599 VF

SSD I/O 性能

如果您使用内核版本为 4.4 或更高版本的 Linux AMI 并使用可用于您的实例的、基于 SSD 的所有实例存储卷,则您可以获得下表所列的 IOPS (4096 字节的数据块大小) 性能 (在队列深度饱和时)。否则,您将获得较低的 IOPS 性能。

实例大小 100% 随机读取 IOPS 写入 IOPS

i3.large *

100,125

35000

i3.xlarge *

206,250

70,000

i3.2xlarge

412,500

180,000

i3.4xlarge

825,000

360,000

i3.8xlarge

1.65 百万

720,000

i3.16xlarge

3.3 百万

1.4 百万

i3.metal

3.3 百万

1.4 百万

i3en.large *

42,500

32,500

i3en.xlarge *

85,000

65000

i3en.2xlarge *

170,000

130,000

i3en.3xlarge

250,000

200,000

i3en.6xlarge

500,000

400,000

i3en.12xlarge

1,000,000

800,000

i3en.24xlarge

2,000,000

1,600,000

* 对于这些实例,您最多可获得指定的性能。

在填充基于 SSD 的实例存储卷时,您获得的 I/O 性能将会下降。这是因为,SSD 控制器必须执行额外的工作以查找可用的空间,重写现有的数据,以及擦除未使用的空间以进行重写。这一垃圾回收过程将导致对 SSD 的内部写入放大影响,这以 SSD 写入操作数相对于用户写入操作数的比率形式来表示。如果写入操作数并非 4096 字节的倍数,或不在 4096 字节这一边界上,则性能的降低会更明显。如果您写入的字节数较少或不在边界上,则 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. 通过选择除 d2.8xlarge 以外的任何其他 D2 实例类型来使用您的 AMI 启动 D2 实例。

  2. 遵照特定于操作系统的说明,将内核更新到最新版本。例如,对于 RHEL 6,使用以下命令:

    sudo yum update -y kernel
  3. 停止实例。

  4. (可选) 从可用于启动其他任何您将来所需的 d2.8xlarge 实例的实例创建 AMI。

  5. 将已停止实例的实例类型更改为 d2.8xlarge (依次选择 ActionsInstance SettingsChange Instance Type,然后按照说明进行操作)。

  6. 启动实例。如果实例正确启动,则您已完成操作。如果实例仍未正确启动,请继续执行下一个步骤。

  7. (可选) 如果实例仍未正确启动,则实例上的内核可能不支持 32 个以上的 vCPU。但是,如果您限制 vCPU 的数量,则可能可以启动实例。

    1. 将已停止实例的实例类型更改为 d2.8xlarge 之外的任何 D2 实例类型 (依次选择 ActionsInstance SettingsChange 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 (依次选择 ActionsInstance SettingsChange Instance Type,然后按照说明进行操作)。

    6. 启动实例。

发行说明

  • 您必须使用 HVM AMI 启动存储优化型实例。有关更多信息,请参阅Linux AMI 虚拟化类型

  • 以下是 I3en 和 i3.metal 实例的要求:

    • 必须安装有 NVMe 驱动程序。EBS 卷显示为 NVMe 块储存设备

    • 必须安装有 Elastic Network Adapter (ENA) 驱动程序。

    以下 AMI 满足这些要求:

    • Amazon Linux 2

    • Amazon Linux AMI 2018.03

    • Ubuntu 14.04 或更高版本

    • Red Hat Enterprise Linux 7.4 或更高版本

    • SUSE Linux Enterprise Server 12 SP2 或更高版本

    • CentOS 7 或更高版本

    • FreeBSD 11.1 或更高版本

  • 启动 i3.metal 实例会启动基础服务器,包含验证所有硬件和固件组件。这意味着从实例进入运行状态直至在网络上可用需要超过 20 分钟的时间。

  • 对裸机实例附加或分离 EBS 卷或辅助网络接口需要 PCIe 本机 hotplug 支持。 Amazon Linux 2 和最新版本的 Amazon Linux AMI 支持 PCIe 本机 hotplug,但更早的版本不支持。必须启用以下 Linux 内核配置选项:

    CONFIG_HOTPLUG_PCI_PCIE=y CONFIG_PCIEASPM=y
  • 裸机实例使用基于 PCI 的串行设备而不是基于 I/O 端口的串行设备。上游 Linux 内核和最新 Amazon Linux AMI 支持此设备。裸机实例还提供一个 ACPI SPCR 表,使系统能够自动使用基于 PCI 的串行设备。最新 Windows AMI 自动使用基于 PCI 的串行设备。

  • 如果是 FreeBSD AMI,裸机实例需要近 1 小时才能启动,并且不能完成到本地 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 实例请求表