块存储性能

如需为您的实例上运行的应用配置存储方案,请按照以下过程进行操作:

了解您的工作负载

对于主要涉及小批量(4 KB 到 16 KB)随机 I/O 的工作负载,其限制因素是随机每秒输入/输出操作次数 (IOPS)

对于主要涉及顺序随机 I/O 或大批量(256 KB 到 1 MB)随机 I/O 的工作负载,限制因素是吞吐量

选择存储方案

您可以提供几种不同类型的块存储供实例使用。每种类型的价格、性能和耐用性特征均不同。如需了解完整比较,请参阅存储选项

  • 标准永久性磁盘适用于主要使用顺序 I/O 的大型数据处理工作负载。
  • SSD 永久性磁盘适用于满足企业应用和高性能数据库的需求,与标准永久性磁盘相比,SSD 永久性磁盘具有更短的延迟时间和更多的 IOPS。SSD 永久性磁盘的设计旨在确保将延迟时间控制在数毫秒以内;实际的延迟时间取决于具体的应用。
  • 本地 SSD 具有较短延迟时间,但不具备冗余性,并且仅在特定实例的生命周期内存在。
地区
标准
永久性磁盘
区域
标准
永久性磁盘
地区
SSD
永久性磁盘
区域
SSD
永久性磁盘
本地 SSD (SCSI) 本地 SSD (NVMe)
最大持续 IOPS
读取 IOPS/GB 0.75 0.75 30 30 - -
写入 IOPS/GB 1.5 1.5 30 30 - -
读取 IOPS/实例 7500* 3000* 15000–100000* 15000–100000* 900000(Beta 版) 2400000(Beta 版)
写入 IOPS/实例 15000* 15000* 15000–30000* 15000–30000* 800000(Beta 版) 1200000(Beta 版)
最大持续吞吐量 (MB/s)
读取吞吐量/GB 0.12 0.12 0.48 0.48 - -
写入吞吐量/GB 0.12 0.12 0.48 0.48 - -
读取吞吐量/实例 240–1200* 240* 240–1200* 240–1200* 9360(Beta 版) 9360(Beta 版)
写入吞吐量/实例 76–400** 38–200** 204–800* 102–400* 4680(Beta 版) 4680(Beta 版)
* 永久性磁盘 IOPS 和吞吐量性能取决于磁盘大小、实例的 vCPU 数量和 I/O 块大小等诸多因素
** 永久性磁盘可以在配备了更多 vCPU 的实例上实现更高的吞吐量性能。请参阅写入吞吐量的网络出站流量上限

将磁盘挂接到多个虚拟机不会影响总体性能或费用。按磁盘的性能限制会分摊到每个虚拟机。

请注意 SSD 读取带宽和接近性能上限的 IOPS 一致性在很大程度上取决于网络入站流量利用率。某种程度上的性能限制变化是正常的,尤其是在接近 IOPS 上限(I/O 大小为 16 KB)操作时。

计算永久性磁盘每次 IOP 的价格

永久性磁盘不是根据 I/O 数据量来计费的,因此您无需通过估算每月 I/O 数据量来计算将要用在磁盘上的预算。但是,对于面向 IOPS 的工作负载,为了便于比较,您可以分解每月费用以了解每次 IOPS 的价格。

以下价格计算示例使用的是美国永久性磁盘价格。考虑标准永久性磁盘与 SSD 永久性磁盘相比较的相对费用。例如,在地区 us-central1 中,标准永久性磁盘的价格为每 GB $0.040,而 SSD 永久性磁盘的价格为每 GB $0.170。增加卷的大小时会自动提高性能上限,无需额外费用。

如需确定永久性磁盘每次 IOPS 的费用,请将每月每 GB 的价格除以每 GB 的 IOPS 数。下表计算每 GB 每次随机读取 IOPS 的价格。您也可以使用相同的计算方法来计算每次写入 IOPS 的价格。

磁盘类型 价格(每 GB 每月) 读取 IOPS/GB 价格(每 GB 每次 IOPS)
标准永久性磁盘 $0.040 0.75 $0.040 / 0.75 = $0.0533
SSD 永久性磁盘 $0.170 30 $0.170 / 30 = $0.0057

标准永久性磁盘具有经济实惠的容量,而 SSD 永久性磁盘则具有适合面向 IOPS 的工作负载的性价比。详细了解永久性磁盘价格本地 SSD 价格

配置磁盘和实例

为最大限度地提高性能,请配置正确的磁盘大小、vCPU 数量和机器类型。

将永久性磁盘与物理硬盘进行比较

在您指定永久性磁盘的容量大小时,请考虑这些磁盘与传统物理硬盘之间的对比情况。下表将标准永久性磁盘和 SSD 永久性磁盘与 7200 RPM SATA 硬盘的典型性能进行了比较,后者通常可达到 75 IOPS 或 120 MB/秒。

I/O 类型 I/O 模式 要达到与 7200 RPM SATA 硬盘同等的性能所需的容量大小 (GB)
标准永久性磁盘 SSD 永久性磁盘
小批量随机读取次数 75 次小批量随机读取 100 3
小批量随机写入 75 次小批量随机写入 50 3
流式大批量读取 120 MB/秒的流式读取 1000 250
流式大批量写入 120 MB/秒的流式写入 1000 250

磁盘大小和 vCPU 数量

标准永久性磁盘和 SSD 永久性磁盘的性能随磁盘大小进行扩缩。此外,其性能还取决于虚拟机实例上的 vCPU 数量,这是由写入吞吐量的网络出站流量上限引起的。

性能可线性扩展,直到达到磁盘的性能上限或磁盘挂接到的实例的性能上限。磁盘挂接到的实例的性能上限取决于机器类型和该实例上的 vCPU 数量。如需详细了解 SSD 永久性磁盘的性能如何取决于实例上限,请参阅机器类型和 vCPU 数量

例如,假设一个 1000 GB 的 SSD 永久性磁盘挂接到具有 N2 机器类型和 4 个 vCPU 的实例。仅基于磁盘大小的读取上限为 30000 IOPS。但是,由于实例具有 4 个 vCPU,因此读取上限限制为 15000 IOPS。

下表展示了按磁盘大小的性能(采用带来性能显著变化的增量)。不过,您可以以 1 GB 为增量指定磁盘大小。

标准永久性磁盘性能(按磁盘大小)

IOPS 持续吞吐量(MB/秒)
磁盘大小 (GB) 读取
(<=16 KB/IO)
写入
(<=8 KB/I/O)
写入
(16 KB/I/O)
读取 写入
10 * * * * *
32 24 48 48 3 3
64 48 96 96 7 7
128 96 192 192 15 15
256 192 384 384 30 30
512 384 768 768 61 61
1000 750 1500 1500 120 120
1500 1125 2250 2250 180 180
2048 1536 3072 3072 245 245
4000 3000 6000 6000 480 400
5000 3750 7500 7500 600 400
8192 6144 12288 7500 983 400
10000–
65536
7500 15000 7500 1200 400

* 只能针对启动磁盘使用此磁盘大小。I/O 爆发为启动卷提供了比此处介绍的线性扩展更高的性能。

SSD 永久性磁盘性能(按磁盘大小)

IOPS 持续吞吐量(MB/秒)
磁盘大小 (GB) 读取
(<=8 KB/IO)
读取
(<=16 KB/IO)
写入
(<=8 KB/I/O)
写入
(16 KB/I/O)
读取 写入
10 300 300 300 300 4.8 4.8
32 960 960 960 960 15 15
64 1920 1920 1920 1920 30 30
128 3840 3840 3840 3840 61 61
256 7680 7680 7680 7680 122 122
500 15000 15000 15000 15000 240 240
834 25000 25000 25000 25000 400 400
1000 30000 30000 30000 25000 480 480
1334 40000 40000 30000 25000 640 640
1667 50000 50000 30000 25000 800 800
2048 60000 60000 30000 25000 983 800
4000–65536 100000 75000 30000 25000 1200 800

机器类型和 vCPU 数量

在 Compute Engine 中,系统根据不同的工作负载对机器类型进行分组和搭配。每种机器类型都受每个 vCPU 的特定永久性磁盘限制约束。对于各种机器类型,按磁盘大小划分的性能都是相同的。

考虑影响性能的因素

写入吞吐量的网络出站流量上限

您的虚拟机实例具有网络出站流量上限,具体取决于虚拟机的机器类型。

Compute Engine 通过多个并行写入将数据存储在永久性磁盘上,以确保内置冗余性。此外,每个写入请求都有一定的开销,因为占用了额外的写入带宽。

虚拟机实例可以发出的写入流量上限为网络出站流量上限除以此冗余和开销所占用的写入带宽的带宽系数。

在永久性磁盘与 IP 流量争用网络出站流量带宽的情况下,写入带宽上限的 60% 将分配给永久性磁盘流量,剩余 40% 将分配给 IP 流量。点击下面的示例即可了解如何计算虚拟机实例可发出的永久性磁盘写入流量的上限。

同时读取和写入

对于标准永久性磁盘,同时发生的读取和写入操作共享相同的资源。当您的实例使用了更高的读取吞吐量或 IOPS 时,它能够执行的写入次数就会减少。相反,如果实例使用了更高写入吞吐量或 IOPS,它能够执行的读取次数会减少。

SSD 永久性磁盘可以同时达到读取和写入操作的吞吐量上限。但是,SSD 永久性磁盘不可能同时达到其读取和写入 IOPS 上限。

请注意,吞吐量 = IOPS * I/O 大小。为充分利用 SSD 永久性磁盘上同时读取和写入的吞吐量上限,请使用不会让读取和写入 IOPS 总和超过 IOPS 上限的 I/O 大小。

逻辑卷大小

永久性磁盘的最大容量可达 64 TB,您可以使用虚拟机内的逻辑卷管理功能创建容量最大为 257 TB 的单个逻辑卷。 较大的卷大小可通过以下方式影响性能:

  • 在这种量级上,并非所有本地文件系统都能保持运行良好。装载和文件系统检查等常见操作所需的时间可能超出预期。

  • 在磁盘容量较小时,永久性磁盘可以达到性能上限。在一个虚拟机有如此之多的存储容量时,磁盘完整读取或写入所需的时间更长。如果您的应用有相应支持,请考虑适用多个虚拟机,以提高整个系统的吞吐量。

  • 截取大量永久性磁盘的快照所需的时间可能超出预期,如果没有仔细与您的应用协调配合,还可能会导致逻辑卷的视图不一致。

单个虚拟机实例上的多个磁盘

相同类型的多个磁盘

假设您有多个类型相同的磁盘(标准或 SSD)以相同模式(例如,读取/写入)挂接。如果您只使用一个磁盘,则该单个磁盘可以达到与磁盘总大小相对应的性能限制。如果您 100% 使用所有磁盘,则无论相对磁盘大小如何,都会在磁盘间平均分配总体性能限制。

例如,假设您有一个 200 GB 的标准磁盘和一个 1000 GB 的标准磁盘。

如果您不使用 1000 GB 的磁盘,则 200 GB 的磁盘可达到 1200 GB 的标准磁盘的性能限制。如果 100% 使用这两个磁盘,则每个磁盘的性能限制为 600 GB 的标准永久性磁盘(1200 GB/2 个磁盘 = 600 GB 的磁盘)。

为了演示这一点,请考虑以下实例。instance-a 有一个 200 GB 的标准永久性磁盘和一个 1000 GB 的标准永久性磁盘。instance-b 有一个 200 GB 的标准永久性磁盘。除此之外,这两个实例具有相同的配置。

多磁盘实例。 单磁盘实例。

以下命令分别对 instance-a 上的 200 GB 的磁盘和 instance-b 上的 200 GB 的磁盘测试读取 IOPS

多磁盘实例读取 IOPS。 单磁盘实例读取 IOPS。

instance-a 上观察到的 200 GB 磁盘的读取 IOPS 为 902,该值与 200 GB + 1000 GB = 1200 GB 的组合磁盘大小的预期读取 IOPS 级别相匹配。

不同类型的多个磁盘

如果您有不同类型的多个磁盘挂接到单个虚拟机,则虚拟机的总性能限制由每个虚拟机的 SSD 限制决定。 挂接到该虚拟机的所有磁盘均受这种总性能限制约束。

例如,假设您有一个 5000 GB 的标准磁盘和一个 1000 GB 的 SSD 磁盘挂接到具有一个 vCPU 的 N2 虚拟机。标准磁盘的读取 IOPS 限制为 3000,而 SSD 磁盘的读取 IOPS 限制为 15000。由于 SSD 磁盘的限制决定了总体限制,因此虚拟机的总读取 IOPS 限制为 15000。所有挂接的磁盘均受此限制约束。

查看性能指标

您可以在 Cloud Monitoring(Google Cloud 的集成式监控解决方案)中查看永久性磁盘性能指标。

其中一些指标有助于您了解磁盘是否受到限制以及何时受到限制。限制的目的是为了消除突发性 I/O。 通过限制磁盘,可以将突发性 I/O 分散在一段时间内,以确保在任何给定时刻都可以符合(而不会超出)磁盘的性能限制。

如需了解详情,请参阅查看永久性磁盘性能指标

优化磁盘性能

如需提高磁盘性能,请按以下步骤开始操作:

在确保任何瓶颈都不是由虚拟机的磁盘大小或机器类型造成的之后,您的应用和操作系统可能仍需要进行一些微调。如需详细了解如何对永久性磁盘性能进行基准化分析和微调,请参阅优化永久性磁盘性能优化本地 SSD 性能

后续步骤