块存储性能

永久性磁盘因其价格实惠、性能优异并且耐用性强而成为最常用的存储方案。您还可以选择使用本地 SSD,它们可以提供更高的性能和更低的延迟时间,但不具备冗余性,并且仅在特定实例的生命周期内存在。为在实例上运行的应用配置存储方案时,请遵循以下过程:

  • 确定您需要多少空间。
  • 确定您的应用所需的性能特征。
  • 配置实例以优化存储性能。

请考虑您的性能和存储空间大小要求,这样有助于您确定适用于您的实例的正确磁盘类型和大小。一个给定应用的性能要求通常分为两种不同的 I/O 模式。

  • 小批量读写操作
  • 大批量读写操作

对于小批量读写操作,其限制因素是随机每秒输入/输出操作次数 (IOPS)

对于大批量读写操作,其限制因素是吞吐量

以下部分介绍了可以挂接到 Compute Engine 实例的可用块存储方案。此外还介绍了可能会影响块存储性能限制的几个因素。如需查看 Google Cloud Platform 上存储方案的完整列表,请参阅 Cloud Storage 产品

块存储性能比较

IOPS/GB 和吞吐量数字表示单个磁盘上数据的总聚合性能,无论该磁盘是挂接到单个实例还是跨多个实例共享,都是如此。对于多个实例从同一磁盘读取数据的情况,磁盘的聚合吞吐量和 IOPS 容量会在这些实例之间共享。为了规划目的,我们建议您使用以下 IOPS/GB 和吞吐量速率。

地区
标准永久性磁盘
区域
标准永久性磁盘
地区
SSD永久性磁盘
区域
SSD永久性磁盘
本地 SSD (SCSI) 本地 SSD (NVMe)
最大持续 IOPS
每 GB 读取 IOPS 次数 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 永久性磁盘与 7200 RPM SATA 硬盘的典型性能进行了比较,后者通常可达到 75 IOPS 或 120 MB/秒。

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

价格与性能

虽然您在为应用选择卷类型和大小时需要考虑若干因素,但您不需要考虑的一个因素就是卷的使用费用。永久性磁盘不是根据 I/O 数据量来计费的,因此您无需通过估算每月 I/O 数据量来计算将要用在磁盘上的预算。但是,对于面向 IOPS 的工作负载,为了便于比较,您可以分解每月费用以了解每次 IOPS 的价格。

以下价格计算示例使用的是美国永久性磁盘价格。在这些示例中,请考虑标准永久性磁盘与 SSD 永久性磁盘相比较的相对成本。标准永久性磁盘的价格为每 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

影响性能限制的因素

实例 vCPU 计数和卷大小

永久性磁盘 IOPS 和吞吐量性能取决于实例 vCPU 的数量和 I/O 块大小。

SSD 永久性磁盘在 3334 GB 时达到 100000 次随机读取 IOPS 的上限,在 1000 GB 时达到 30000 次随机写入 IOPS 的上限。相比之下,标准永久性磁盘在 4 TB 时达到 3000 次随机读取 IOPS 的上限,在 10 TB 时达到 15000 次随机写入 IOPS 的上限。

SSD 永久性磁盘的设计旨在确保将延迟时间控制在数毫秒以内。实际的延迟时间取决于具体的应用。

标准永久性磁盘

标准永久性磁盘的性能可线性扩展至虚拟机性能上限。如果您的实例的 vCPU 数量为 16 个或更多,这并不会限制标准永久性磁盘的性能。

实例的 vCPU 数量小于 8 会降低 IOPS 的写入上限,因为网络出站流量限制与 vCPU 数量成正比。写入吞吐量观察结果上限还取决于 I/O 的大小(在同一 IOPS 级别,16 KB I/O 消耗的带宽比 8 KB I/O 多)。

标准永久性磁盘的 IOPS 和吞吐量性能会随着磁盘大小线性增加,直到达到以下上限(按每个实例计算):

  • 读取吞吐量:磁盘大小为 10 TB 时最高可达到 1200 MB/秒。
  • 写入吞吐量:磁盘大小为 3.4 TB 时最高可达到 400 MB/秒。
  • 读取 IOPS:磁盘大小为 10 TB 时最高可达到 7500 次 IOPS。
  • 写入 IOPS:磁盘大小为 10 TB 时最高可达到 15000 次 IOPS。

要在现有的实例中获得永久性磁盘的性能优势,请调整永久性磁盘的大小以增加每块永久性磁盘的 IOPS 和吞吐量。

卷大小 (GB) 持续随机 IOPS 持续吞吐量(MB/秒)
读取
(<=16 KB/IO)
写入
(<=8 KB/IO)
写入
(16 KB/IO)
读取 写入
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** 7500 15000 7500 1200 400
65536 7500 15000 7500 1200 400

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

** 吞吐量接近限制的程度取决于 CPU 利用率和资源可用性,因此具体性能有所变化属于符合预期的行为。

SSD 永久性磁盘

除了磁盘大小以外,SSD 永久性磁盘的 IOPS 性能还取决于实例中的 vCPU 数量。性能可线性扩展,直到达到卷的性能上限或相应 Compute Engine 实例的性能上限。

例如,假设一个 SSD 永久性磁盘的卷大小为 1000 GB。根据下表,其读取限制为 30000 IOPS。但如果所用实例只有 4 个 vCPU,则读取限制为 15000 IOPS。

由于写入吞吐量的网络出站流量限制,较少的核心虚拟机具有较低的写入 IOPS 和吞吐量上限。如需了解详情,请参阅写入吞吐量的网络出站流量上限。SSD 读取带宽和接近上限的 IOPS 一致性在很大程度上取决于网络入站流量利用率;某种程度上的变化是正常的,特别是对于接近 IOPS 上限的 16 KB I/O。

实例的 vCPU 数量 持续随机 IOPS 持续吞吐量(MB/秒)
读取
(<=8 KB/IO)
读取
(<=16 KB/IO)
写入
(<=8 KB/IO)
写入
(16 KB/IO)
读取* 写入
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

* 基于 I/O 块大小为 256 KB 或更大值的吞吐量最大值。

** 在 CPU 完全被占用的情况下,可能无法实现最高性能。

如需提高现有实例上的 SSD 永久性磁盘的性能,请更改实例的机器类型以增加每个虚拟机的性能上限,并调整永久性磁盘的大小以增加每个永久性磁盘的 IOPS 和吞吐量。

卷大小 (GB) 持续随机 IOPS 持续吞吐量(MB/秒)
读取
(<=8 KB/IO)
读取
(<=16 KB/IO)
写入
(<=8 KB/IO)
写入
(16 KB/IO)
读取 写入
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 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
4096 100000 75000 30000 25000 1200 800
8192 100000 75000 30000 25000 1200 400
16384 100000 75000 30000 25000 1200 400
32768 100000 75000 30000 25000 1200 400
65536 100000 75000 30000 25000 1200 400

机器类型

计算优化的机器类型受限于每个 vCPU 的特定永久性磁盘限制,这些限制与其他机器类型的限制不同。下表展示了这些限制。

请注意,按卷来看的性能与标准磁盘性能SSD 磁盘性能部分中描述的性能相同。

C2 标准永久性磁盘

实例的 vCPU 数量 持续随机 IOPS 持续吞吐量(MB/秒)
读取
(<=16 KB/IO)
写入
(<=8 KB/IO)
写入
(16 KB/IO)
读取* 写入
4 个 vCPU 3000 4000 4000 240 240
8 个 vCPU 3000 4000 4000 240 240
16 个 vCPU3000 4000 4000 240 240
30 个 vCPU 3000 8000 8000 240 240
60 个 vCPU 3000 15000 15000 240 240

C2 SSD 永久性磁盘

实例的 vCPU 数量 持续随机 IOPS 持续吞吐量(MB/秒)
读取
(<=16 KB/IO)
写入
(<=8 KB/IO)
写入
(16 KB/IO)
读取* 写入
4 个 vCPU 4000 4000 4000 240 240
8 个 vCPU 4000 4000 4000 240 240
16 个 vCPU8000 4000 4000 320 240
30 个 vCPU 15000 8000 8000 600 240
60 个 vCPU 30000 15000 15000 1200 400

同时读取和写入

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

SSD 永久性磁盘可以同时达到读取和写入操作的吞吐量上限。但对于 IOPS 而言并非如此;也就是说,SSD 永久性磁盘不可能同时达到其最大读取和写入上限。为了在同时执行读取和写入操作时实现最大吞吐量上限,请优化 I/O 大小,使卷能够达到其吞吐量上限,而又不至于遇到 IOPS 瓶颈。

同时读取和写入的实例 IOPS 上限:

下表中的 IOPS 数字基于 8 KB 的 I/O 大小。 其他 I/O 大小(如 16 KB)可能具有不同的 IOPS 数字,但具有相同的读取/写入分配。

标准永久性磁盘 SSD 永久性磁盘(8 个 vCPU) SSD 永久性磁盘(32 个或更多 vCPU)
读取 写入 读取 写入 读取 写入
7500 IOPS 0 IOPS 15000 IOPS 0 IOPS 60000 IOPS 0 IOPS
5625 IOPS 3750 IOPS 11250 IOPS 3750 IOPS 45000 IOPS 7500 IOPS
3750 IOPS 7500 IOPS 7500 IOPS 7500 IOPS 30000 IOPS 15000 IOPS
1875 IOPS 11250 IOPS 3750 IOPS 11250 IOPS 15000 IOPS 22500 IOPS
0 IOPS 15000 IOPS 0 IOPS 15000 IOPS 0 IOPS 30000 IOPS

同时读取和写入的实例吞吐量上限:

标准永久性磁盘 SSD 永久性磁盘(8 个 vCPU) SSD 永久性磁盘(16 个或更多 vCPU)
读取 写入 读取 写入 读取 写入
1200 MB/秒 0 MB/秒 800 MB/秒* 400 MB/秒* 1200 MB/秒* 400 MB/秒*
900 MB/秒 100 MB/秒
600 MB/秒 200 MB/秒
300 MB/秒 300 MB/秒
0 MB/秒 400 MB/秒

*对于 SSD 永久性磁盘,读取吞吐量最大值和写入吞吐量最大值彼此独立,因此这些上限是不变的。

逻辑卷的性能更高

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

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

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

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

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

每个永久性磁盘写入操作都会占用虚拟机 (VM) 实例的累计网络出站流量上限

如需计算某个虚拟机实例可以发送的永久性磁盘最大写入流量,请从该实例的每个 vCPU 每秒 2 Gbit 的网络流量上限中减去其他网络出站流量。剩余的吞吐量就表示您可以用于永久性磁盘写入流量的吞吐量。

Compute Engine 将数据存储在永久性磁盘上,以使其具有内置冗余性。实例通过将数据并行写入永久性磁盘三次来实现此冗余性。 此外,每个写入请求都有一定的开销,因为占用了出站流量带宽。

每个实例都具有基于虚拟机的网络出站流量上限的永久性磁盘写入限制。在永久性磁盘与 IP 流量争用网络出站流量的情况下,网络出站流量上限的 60% 将分配给永久性磁盘流量,剩余 40% 将分配给 IP 流量。下表显示了具有和没有其他 IP 流量的永久性磁盘预期写入带宽:

标准永久性磁盘 固态永久性磁盘
vCPU 数量 标准永久性磁盘的写入上限(MB/秒) 标准永久性磁盘的写入分配(MB/秒) 达到上限所需的标准卷大小 (GB) SSD 永久性磁盘的写入上限(MB/秒) SSD 永久性磁盘的写入分配(MB/秒) 达到上限所需的 SSD 永久性磁盘大小 (GB)
1 72 43 600 72 43 150
2 144 86 1200 144 86 300
4 240 173 2000 240 173 500
8 个或更多 400 346 3334 400 346 834

如需了解此表格中的值是如何计算得出的,请参考示例(其中包含 1 个 vCPU 和标准永久性磁盘)。在此示例中,我们估计每个写入请求的带宽系数是 3.3,这意味着数据被向外写出了 3 次,并且总开销为 10%。如需计算出站流量上限,请将网络出站流量上限 2 Gbit/秒(相当于 238 MB/秒)除以 3.3:

1 个 vCPU 的最大写入带宽 = 238 / 3.3 = ~72 MB/秒(写入到您的标准永久性磁盘)

使用前面介绍的性能图表中提供的标准永久性磁盘的每 GB 写入吞吐量数据,您也可以计算得到实现上述性能所需的磁盘容量:

1 个 vCPU 要达到最大写入带宽所需的磁盘容量 = 72 / 0.12 = ~600 GB

与地区永久性磁盘类似,来自区域永久性磁盘的写入流量也会占用虚拟机实例的累计网络出站流量上限。如需计算适用于区域永久性磁盘的网络出站流量上限,请使用系数 6.6。

1 个 vCPU 的最大写入带宽 = 238 / 6.6 = ~36 MB/秒(写入到复制的标准永久性磁盘)。

对于 16 核及 16 核以上的虚拟机,如果写入吞吐量增长高于 400 MB/秒,但不超过 800 MB/秒,并且保持在 1320 MB/秒(400 MB/秒 * 3.3),则永久性磁盘写入操作占用的最大网络出站带宽不会随写入吞吐量的增长而发生变化。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档