块存储性能

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

了解您的工作负载

对于主要涉及小批量(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 266.7 453.3
写入 IOPS/GB 1.5 1.5 30 30 186.7 240
读取 IOPS/实例 7500* 3000* 15000–100000* 15000–100000* 400000 680000
写入 IOPS/实例 15000* 15000* 15000–30000* 15000–30000* 280000 360000
最大持续吞吐量 (MB/s)
读取吞吐量/GB 0.12 0.12 0.48 0.48 1.04 1.77
写入吞吐量/GB 0.12 0.12 0.48 0.48 0.73 0.94
读取吞吐量/实例 240–1200* 240* 240–1200* 240–1200* 1560 2650
写入吞吐量/实例 76–400** 38–200** 76–800* 38–400* 1090 1400
* 永久性磁盘 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) 每 GB 读取 IOPS 次数 价格(每 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 数量和机器类型。

磁盘大小和 vCPU 数量

标准永久性磁盘的性能随其大小而变化。其性能还取决于分配给虚拟机实例的 vCPU 数量,这是由写入吞吐量的网络出站流量上限引起的。使用 16 个或更多的 vCPU 不会限制性能。使用的 vCPU 数量少于 16 个会限制性能。如需了解详情,请参阅网络出站流量限制

对于 SSD 永久性磁盘,性能可线性扩展,直到达到磁盘的性能上限或磁盘挂接到的 Compute Engine 实例的性能上限。例如,假设一个 SSD 永久性磁盘的卷大小为 1000 GB。读取限制为 30000 IOPS。但如果所用实例只有 4 个 vCPU,则读取限制为 15000 IOPS。

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

标准永久性磁盘

卷大小 (GB) 持续随机 IOPS 持续吞吐量(MB/秒)
读取
(<=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 数量 读取
(<=8 KB/IO)
读取
(<=16 KB/IO)
写入
(<=8 KB/I/O)
写入
(16 KB/I/O)
读取 写入
1 个 vCPU 15000 15000 9000 4500 240 72
2 到 3 个 vCPU 15000 15000 15000 4500/vCPU 240 72/vCPU
4 到 7 个 vCPU 15000 15000 15000 15000 240 240
8 到 15 个 vCPU 15000 15000 15000 15000 800 400
16 到 31 个 vCPU 25000 25000 25000 25000 1200 800
32 到 63 个 vCPU 60000 60000 30000 25000 1200 800
64 个及更多 vCPU* 100000 75000 30000 25000 1200 800

* 在 CPU 完全被占用的情况下,可能无法实现最高性能。SSD 读取带宽和接近上限的 IOPS 一致性在很大程度上取决于网络入站流量利用率;某种程度上的变化是正常的,特别是对于接近 IOPS 上限的 16 KB I/O。

机器类型

在 Compute Engine 中,系统根据不同的工作负载对机器类型进行分组和搭配。

具体而言,计算优化的机器类型受特定的每 vCPU 永久性磁盘限制的影响,不同于其他机器类型的限制。请注意,按卷来看的性能与按磁盘大小来看的性能部分所述相同。

考虑影响性能的因素

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

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

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

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

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

优化性能

为最大限度地提高性能,请考虑以下几点:

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