存储优化型实例
存储优化型实例适用于需要对本地存储上的极大型数据集进行高性能顺序读写访问的工作负载。它们经过了优化,可以向应用程序提供每秒上万次低延迟性随机 I/O 操作 (IOPS)。
D2 实例
这些实例非常适合以下用途:
-
大规模并行处理 (MPP) 数据仓库
-
MapReduce 和 Hadoop 分布式计算
-
日志或数据处理应用程序
D3 和 D3en 实例
这些实例提供了实例存储扩展,非常适合以下用途:
-
适用于 Hadoop 工作负载的分布式文件系统
-
文件存储工作负载,如 GPFC 和 BeeFS
-
适用于 HPC 工作负载的大型数据湖
H1 实例
这些实例非常适合以下用途:
-
数据密集型工作负载,例如,MapReduce 和分布式文件系统
-
需要顺序访问直接附加的实例存储上的大量数据的应用程序
-
需要以高吞吐量方式访问大量数据的应用程序
I3 和 I3en 实例
这些实例非常适合以下用途:
-
高频率联机事务处理 (OLTP) 系统
-
关系数据库
-
NoSQL 数据库
-
内存中数据库 (例如,Redis) 的缓存
-
数据仓库应用程序
-
分布式文件系统
裸机实例为应用程序提供对主机服务器的物理资源(如处理器和内存)的直接访问。
有关更多信息,请参阅 Amazon EC2 I3 实例
硬件规格
D2、D3 和 D3en 实例的主要数据存储是 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 |
d3.xlarge |
4 | 32 |
d3.2xlarge |
8 | 64 |
d3.4xlarge |
16 | 128 |
d3.8xlarge |
32 | 256 |
d3en.large |
2 | 8 |
d3en.xlarge |
4 | 16 |
d3en.2xlarge |
8 | 32 |
d3en.4xlarge |
16 | 64 |
d3en.6xlarge |
24 | 96 |
d3en.8xlarge |
32 | 128 |
d3en.12xlarge |
48 | 192 |
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 性能。
如果使用可支持持久授予 (可显著提高磁盘吞吐量和可扩展性的 Xen 数据块环协议的扩展) 的 Linux 内核,D2 实例可提供最佳磁盘性能。有关持久授予的更多信息,请参阅 Xen 项目博客中的文章
通过 EBS 优化的实例,您可以消除 Amazon EBS I/O 与 实例的其他网络流量之间的争用,从而使 EBS 卷持续获得高性能。有些存储优化型实例在默认情况下会进行 EBS 优化,这不会产生额外的费用。有关更多信息,请参阅Amazon EBS 优化的实例。
有些存储优化型实例类型提供了在 Linux 上控制处理器 C 状态和 P 状态的功能。C 状态控制当核心处理非活动状态时可以进入的睡眠级别,而 P 状态控制核心的所需性能 (以 CPU 频率的形式)。有关更多信息,请参阅您的 EC2 实例的处理器状态控制。
网络性能
您可以为受支持的实例类型启用增强联网,以提供更低的延迟、更低的网络抖动和更高的每秒数据包数 (PPS) 性能。大多数应用程序并非始终需要较高的网络性能,但较高的带宽有助于其发送或接收数据。有关更多信息,请参阅Linux 上的增强联网。
以下是支持增强联网的存储优化型实例的网络性能摘要。
实例类型 | 网络性能 | 增强联网 |
---|---|---|
d2.xlarge |
中 | Intel 82599 VF |
d2.2xlarge | d2.4xlarge |
高 | Intel 82599 VF |
i3.4xlarge 及更小 |
最高 10Gbps † | ENA |
d2.8xlarge |
10Gbps | Intel 82599 VF |
i3.8xlarge | h1.8xlarge |
10Gbps | ENA |
d3.4xlarge 和更小 |
最高 15 Gbps † | ENA |
d3en.2xlarge 及更小 | i3en.3xlarge 及更小 |
最高 25Gbps † | ENA |
d3.8xlarge |
d3en.4xlarge | h1.16xlarge |
i3.16xlarge | i3.metal |
i3en.6xlarge
|
25 Gbps | ENA |
d3en.6xlarge |
40Gbps | ENA |
d3.8xlarge | d3en.8xlarge |
i3en.12xlarge
|
50 Gbps | ENA |
d3en.12xlarge
|
75 Gbps | ENA |
i3en.24xlarge | i3en.metal
|
100 Gbps | ENA、EFA |
† 这些实例具备基准带宽,并且可以使用一种网络输入/输出积分机制,尽可能突破其基准带宽。有关更多信息,请参阅实例网络带宽。
实例类型 | 基准带宽 (Gbps) | 突增带宽 (Gbps) |
---|---|---|
d3.xlarge |
3 | 15 |
d3.2xlarge |
6 | 15 |
d3.4xlarge |
12.5 | 15 |
d3en.large |
3 | 25 |
d3en.xlarge |
6 | 25 |
d3en.2xlarge |
12.5 | 25 |
i3.large |
.75 | 10 |
i3.xlarge |
1.25 | 10 |
i3.2xlarge |
2.5 | 10 |
i3.4xlarge |
5 | 10 |
i3en.large |
2.1 | 25 |
i3en.xlarge |
4.2 | 25 |
i3en.2xlarge |
8.4 | 25 |
i3en.3xlarge |
12.5 | 25 |
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 |
1650,000 | 720,000 |
i3.16xlarge |
3300000 | 1400000 |
i3.metal |
3300000 | 1400000 |
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 |
1000000 | 800,000 |
i3en.24xlarge |
2000000 | 1600000 |
i3en.metal |
2000000 | 1600000 |
在填充基于 SSD 的实例存储卷时,您获得的 I/O 性能将会下降。这是因为,SSD 控制器必须执行额外的工作以查找可用的空间,重写现有的数据,以及擦除未使用的空间以进行重写。这一垃圾回收过程将导致对 SSD 的内部写入放大影响,这以 SSD 写入操作数相对于用户写入操作数的比率形式来表示。如果写入操作数并非 4096 字节的倍数,或不在 4096 字节这一边界上,则性能的降低会更明显。如果您写入的字节数较少或不在边界上,则 SSD 控制器必须读取周围的数据并在新位置存储结果。这种模式会大大增加写入放大的影响,加长延迟,并显著降低 I/O 性能。
SSD 控制器可以使用多种策略来减少写入放大的影响。其中的一个策略是在 SSD 实例存储中预订空间,以便控制器更高效地管理可用于写入操作的空间。这称为超额配置。为 实例提供的基于 SSD 的实例存储卷不会为超额配置预保留空白间。要减少写入放大问题造成的影响,建议您留出 10% 的卷空间不进行分区,以便 SSD 控制器可使用这部分空间来进行超额配置。虽然这会减少您可使用的存储空间,但可提高性能,即使磁盘容量快用完也是如此。
对于支持 TRIM 的实例存储卷,您可在不再需要已写入的数据时使用 TRIM 命令告知 SSD 控制器此情况。这将为控制器提供更多可用空间,从而可以减少写入放大的影响并提高性能。有关更多信息,请参阅实例存储卷 TRIM 支持。
实例功能
存储优化型实例的功能汇总如下:
仅限于 EBS | 实例存储 | 置放群组 | |
---|---|---|---|
D2 |
否 |
HDD |
是 |
D3 |
否 |
HDD * |
是 |
D3en |
否 |
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
-
通过选择除
d2.8xlarge
以外的任何其他 D2 实例类型来使用您的 AMI 启动 D2 实例。 -
遵照特定于操作系统的说明,将内核更新到最新版本。例如,对于 RHEL 6,使用以下命令:
sudo yum update -y kernel
-
停止实例。
-
(可选) 从可用于启动其他任何您将来所需的
d2.8xlarge
实例的实例创建 AMI。 -
将已停止实例的实例类型更改为
d2.8xlarge
[依次选择 Actions(操作)、Instance settings(实例设置)、Change instance type(更改实例类型),然后按照说明进行操作]。 -
启动实例。如果实例正确启动,则您已完成操作。如果实例仍未正确启动,请继续执行下一个步骤。
-
(可选) 如果实例仍未正确启动,则实例上的内核可能不支持 32 个以上的 vCPU。但是,如果您限制 vCPU 的数量,则可能可以启动实例。
-
将已停止实例的实例类型更改为
d2.8xlarge
之外的任何 D2 实例类型 [依次选择 Actions(操作)、Instance settings(实例设置)、Change instance type(更改实例类型),然后按照说明进行操作]。 -
遵照特定于操作系统的说明,将
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 -
停止实例。
-
(可选) 从可用于启动其他任何您将来所需的
d2.8xlarge
实例的实例创建 AMI。 -
将已停止实例的实例类型更改为
d2.8xlarge
[依次选择 Actions(操作)、Instance settings(实例设置)、Change instance type(更改实例类型),然后按照说明进行操作]。 -
启动实例。
-
发布说明
-
基于 Nitro 系统构建的实例具有以下要求:
必须安装有 NVMe 驱动程序。
必须安装有 Elastic Network Adapter (ENA) 驱动程序。
以下 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 本机 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。 -
d3.8xlarge
和d3en.12xlarge
实例最多支持三个挂载,包括根卷。如果在添加网络接口或 EBS 卷时超出挂载限制,则会导致实例出现挂载问题。 -
在一个区域中可以启动的实例总数存在限制,某些实例类型还存在其他限制。有关更多信息,请参阅 Amazon EC2 常见问题解答中的我可以在 Amazon EC2 中运行多少个实例?
。