借助 Compute Engine,您可以为某些通用和计算优化型虚拟机 (VM) 实例选择带宽高的每个虚拟机的 Tier_1 网络性能配置。具有 Tier_1 网络配置的虚拟机特别适合具有大量密集型节点间通信的大型分布式计算工作负载,例如高性能计算 (HPC)、机器学习 (ML) 和深度学习 (DL)。
将这些高吞吐量虚拟机与高性能本地 SSD 存储结合使用对于 I/O 密集型、闪存优化的数据库很有利。
准备工作
- 针对 Tier_1 较高带宽网络价格查看每个虚拟机的 Tier_1 网络性能的价格。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) -
Create Service Accounts (
roles/iam.serviceAccountCreator
) -
创建虚拟机:
- 针对项目的
compute.instances.create
权限 - 使用自定义映像创建虚拟机:针对映像的
compute.images.useReadOnly
权限 - 使用快照创建虚拟机:针对快照的
compute.snapshots.useReadOnly
权限 - 使用实例模板创建虚拟机:针对实例模板的
compute.instanceTemplates.useReadOnly
权限 - 为虚拟机分配旧版网络:针对项目的
compute.networks.use
权限 - 为虚拟机指定静态 IP 地址:针对项目的
compute.addresses.use
权限 - 使用旧版网络时为虚拟机分配外部 IP 地址:针对项目的
compute.networks.useExternalIp
权限 - 为虚拟机指定子网:针对项目或所选子网的
compute.subnetworks.use
权限 - 在使用 VPC 网络时为虚拟机分配外部 IP 地址:针对项目或所选子网的
compute.subnetworks.useExternalIp
权限 - 为虚拟机设置虚拟机实例元数据:针对项目的
compute.instances.setMetadata
权限 - 为虚拟机设置标记:针对虚拟机的
compute.instances.setTags
权限 - 为虚拟机设置标签:针对虚拟机的
compute.instances.setLabels
权限 - 为虚拟机设置要使用的服务账号:针对虚拟机的
compute.instances.setServiceAccount
权限 - 为虚拟机创建新磁盘:针对项目的
compute.disks.create
权限 - 以只读或读写模式挂接现有磁盘:针对磁盘的
compute.disks.use
权限 - 以只读模式挂接现有磁盘:针对磁盘的
compute.disks.useReadOnly
权限
- 针对项目的
-
更新虚拟机以包含 Tier_1 网络:
-
compute.instances.update
-
使用实例上要修改的资源的权限,例如
compute.instances.updateNetworkInterface
-
-
创建使用 Tier_1 网络的实例模板:调用
instanceTemplates.insert
方法所需的所有权限 - Compute Engine 是唯一支持 Tier_1 网络的产品领域。
- 至少具有 30 个 vCPU 的 N2、N2D、C2、C2D、C3、C3D、M3 和 Z3 虚拟机支持 Tier_1 网络。
- Tier_1 网络需要使用 gVNIC 虚拟网络驱动程序以及与 gVNIC 兼容的操作系统映像或自定义映像的虚拟机。
- C3、C3D、Z3 和 H3 虚拟机需要使用 gVNIC 驱动程序 1.3 版或更高版本才能提供最佳的 Tier_1 网络性能。确保您使用的操作系统映像完全支持 Tier_1 网络。完全支持的操作系统映像包含更新后的 gVNIC 驱动程序。 您可以在没有最新版本的映像上更新 gVNIC 驱动程序。
- Tier_1 网络的可购买库存单元 (SKU) 不包括在承诺使用折扣中。
- 当推送的带宽超过 100 Gbps 时,大型 C3、C3D 和 Z3 虚拟机可能会遇到与 NUMA 相关的瓶颈。根据您的应用架构,您可能需要控制线程并中断布置。在 Linux 上,接收流导向 (RFS) 等客机操作系统功能可以帮助解决此问题。确保您的应用已经过 NUMA 调整,可以最大限度地提高性能。
- 在使用 Microsoft Windows 的 C3、C3D 和 H3 虚拟机上,gVNIC 驱动程序可以为默认网络和 Tier_1 网络实现高达 85 Gbps 的网络带宽。
- 默认带宽范围在 10 Gbps 到 200 Gbps 之间,具体取决于机器类型和虚拟机大小。
- Tier_1 网络会增加虚拟机的最大出站流量带宽限制。出站流量带宽上限范围在 50 Gbps 到 200 Gbps 之间,具体取决于虚拟机的大小和机器类型。
- 实际的出站流量带宽始终小于或等于出站流量带宽限制。
- 发送和接收虚拟机必须位于同一可用区中。
- 虚拟机必须位于同一个 VPC 网络或者通过 VPC 网络对等互连连接的 VPC 网络中。
- 虚拟机之间发送的数据包必须使用内部 IP 地址目的地。
- 虚拟机所用的 VPC 网络使用最大传输单元 (MTU) 设置的最高值。较高的 MTU 可以减少数据包标头的开销,从而增加载荷数据的吞吐量。
在 Google Cloud 控制台中,转到虚拟机实例页面。
选择您的项目。
点击创建实例。
为您的虚拟机指定名称。如需了解详情,请参阅资源命名惯例。
选择支持 Tier_1 网络的区域和可用区。
为虚拟机选择机器配置。如需创建使用 Tier_1 网络的虚拟机,您必须选择 N2、N2D、C2、C2D、C3、C3D 或 Z3 虚拟机。
- 点击通用标签页,然后从系列菜单中选择 N2、N2D、C3 或 C3D。
- 点击计算优化标签页,然后从系列菜单中选择 C2 或 C2D。
- 先点击存储优化标签页,然后从系列菜单中选择 Z3。
在机器类型菜单中,选择符合带宽层级大小要求的机器类型。
如需选择与 gVNIC 兼容的操作系统,请在启动磁盘部分中,点击更改,然后选择支持的操作系统,或使用自定义映像标签页选择一个自定义映像。
可选。在防火墙部分中,选择防火墙规则。
展开高级选项部分。
展开网络部分,然后执行以下操作:
在网络接口卡菜单中,选择 gVNIC。
在网络带宽部分中,选中启用每个虚拟机的 Tier_1 网络性能复选框。
如果虚拟机具有多个 NIC 或您使用 IPv6 地址,请配置网络接口。
点击创建。
- 将
networkPerformanceConfig
参数设置为totalEgressBandwidthTier
和TIER_1
。 - 将
networkInterface
参数设置为nicType
和GVNIC
。 - PROJECT_ID:您的项目 ID
- ZONE:您要在其中创建虚拟机的可用区
- VM_NAME:虚拟机的名称
在 Google Cloud 控制台中,转到虚拟机实例页面。
选择您的项目。
点击要修改的虚拟机的名称。
停止虚拟机。
选择修改。
如果您的虚拟机最初配置有 gVNIC 卡,请选中启用每个虚拟机的 Tier_1 网络性能复选框以添加每个虚拟机的 Tier_1 网络性能,或者取消选中该复选框以从虚拟机移除此功能。
保存更改。
重启虚拟机。
使用
gcloud compute instances export
命令将虚拟机的信息导出到 YAML 文件。gcloud compute instances export VM_NAME \ --zone=ZONE --destination=PATH_TO_FILE
替换以下内容:
- VM_NAME:虚拟机的名称
- ZONE:虚拟机所在可用区的名称
-
PATH_TO_FILE:扩展名为
.yaml
的文件名。例如:
gcloud compute instances export instance-1 \ --zone=europe-west1-c --destination=test-file.yaml
打开 Cloud Shell 编辑器或您选择的编辑器。
打开您创建的 YAML 文件。
转到该文件的末尾并添加以下信息:
networkPerformanceConfig: totalEgressBandwidthTier: TIER_1
将
totalEgressBandwidthTier
设置为TIER_1
,可添加 Tier_1 网络。将其设置为DEFAULT
,会移除该配置。使用
gcloud compute instance update-from-file
命令通过该文件中的更改更新虚拟机。gcloud compute instances update-from-file VM_NAME \ --source=PATH_TO_FILE \ --most-disruptive-allowed-action=RESTART
替换以下内容:
- VM_NAME:虚拟机的名称
- PATH_TO_FILE:您的
.yaml
文件名
--most-disruptive-allowed-action=RESTART
标志设置会自动使用更新后的配置重启虚拟机。- PROJECT_ID:您的项目 ID
- ZONE:您的虚拟机所在的可用区
- RESOURCE_ID:您的虚拟机的名称
在 Google Cloud 控制台中,转到虚拟机实例页面。
选择您的项目并点击继续。
点击虚拟机名称以查看其配置详细信息,并查看虚拟机是否使用每个虚拟机的 Tier_1 网络性能。
- PROJECT_ID:您的项目名称
- ZONE:您的虚拟机所在的可用区
- RESOURCE_ID:您的虚拟机的名称
在 Google Cloud 控制台中,转到实例模板页面。
点击创建实例模板。
为以下字段输入值,或接受默认值。
为实例模板指定名称。如需了解详情,请参阅资源命名惯例。
选择支持 Tier_1 网络的区域和可用区。
为虚拟机选择机器配置。如需创建使用 Tier_1 网络的虚拟机,您必须选择 N2、N2D、C2、C2D、C3、C3D 或 Z3 虚拟机。
- 点击通用标签页,然后从系列菜单中选择 N2、N2D、C3 或 C3D。
- 点击计算优化标签页,然后从系列菜单中选择 C2 或 C2D。
- 先点击存储优化标签页,然后从系列菜单中选择 Z3。
在机器类型菜单中,选择符合带宽层级大小要求的机器类型。
在启动磁盘部分中,点击更改,然后选择与 gVNIC 兼容的映像或自定义映像。
可选。在防火墙部分中,选择防火墙规则。
展开高级选项部分。
展开网络部分,然后执行以下操作:
在网络接口卡菜单中,选择 gVNIC。
在网络带宽部分中,选中启用每个虚拟机的 Tier_1 网络性能复选框。
如果虚拟机具有多个 NIC 或您使用 IPv6 地址,请配置网络接口。
点击创建。
- PROJECT_ID:您的项目名称
- INSTANCE_TEMPLATE_NAME:您的实例模板名称
- ZONE:虚拟机所在的地区
- MACHINE_TYPE:虚拟机的机器类型
- RESOURCE_ID:您的虚拟机的名称
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得将虚拟机配置为使用每个虚拟机的 Tier_1 网络性能所需的权限,请让您的管理员向您授予项目的以下 IAM 角色:
如需详细了解如何授予角色,请参阅管理访问权限。
这些预定义角色可提供将虚拟机配置为使用每个虚拟机的 Tier_1 网络性能所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
将虚拟机配置为使用每个虚拟机的 Tier_1 网络性能需要以下权限:
限制
带宽层级
出站流量带宽限制表示 Google Cloud 允许虚拟机在每时间单位从其网络接口 (NIC) 发出的最大可能的数据量(例如每秒千兆字节,即 Gbps)。出站流量带宽包括传输到虚拟机挂接的所有永久性磁盘和 Google Cloud Hyperdisk 卷的数据。
请注意有关带宽限制的以下事项:
为了实现尽可能高的出站流量带宽,必须满足以下所有条件:
如需查看出站流量和入站流量带宽限制的完整讨论,请参阅网络带宽。
通用 N2 虚拟机
下表介绍了 N2 虚拟机的出站带宽限制。
vCPU 数量 内部 IP Tier_1 内部 IP 地址 外部 IP Tier_1 外部 IP 地址 2 10 Gbps 不适用 (N/A) 7 Gbps 不适用 4 10 Gbps 不适用 7 Gbps 不适用 8 16 Gbps 不适用 7 Gbps 不适用 16 32 Gbps 不适用 7 Gbps 不适用 32 32 Gbps 50 Gbps 7 Gbps 25 Gbps 48 32 Gbps 50 Gbps 7 Gbps 25 Gbps 64 32 Gbps 75 Gbps 7 Gbps 25 Gbps 80 32 Gbps 100 Gbps 7 Gbps 25 Gbps 96 32 Gbps 100 Gbps 7 Gbps 25 Gbps 128 32 Gbps 100 Gbps 7 Gbps 25 Gbps 通用 N2(自定义大小形状)虚拟机
下表介绍了自定义大小的 N2 虚拟机的出站带宽限制。
vCPU 数量 内部 IP Tier_1 内部 IP 地址 外部 IP Tier_1 外部 IP 地址 32-62 32 Gbps 50 Gbps 7 Gbps 25 Gbps 64-78 32 Gbps 75 Gbps 7 Gbps 25 Gbps 80-128 32 Gbps 100 Gbps 7 Gbps 25 Gbps 通用 N2D 虚拟机
下表介绍了 N2D 虚拟机的出站带宽限制。
vCPU 数量 内部 IP Tier_1 内部 IP 地址 外部 IP Tier_1 外部 IP 地址 2 10 Gbps 不适用 (N/A) 7 Gbps 不适用 4 10 Gbps 不适用 7 Gbps 不适用 8 16 Gbps 不适用 7 Gbps 不适用 16 32 Gbps 不适用 7 Gbps 不适用 32 32 Gbps 不适用 7 Gbps 不适用 48 32 Gbps 50 Gbps 7 Gbps 25 Gbps 64 32 Gbps 50 Gbps 7 Gbps 25 Gbps 80 32 Gbps 50 Gbps 7 Gbps 25 Gbps 96 32 Gbps 100 Gbps 7 Gbps 25 Gbps 128 32 Gbps 100 Gbps 7 Gbps 25 Gbps 224 32 Gbps 100 Gbps 7 Gbps 25 Gbps 通用 N2D(自定义大小形状)虚拟机
下表介绍了自定义大小的 N2D 虚拟机的出站带宽限制。
vCPU 数量 内部 IP Tier_1 内部 IP 地址 外部 IP Tier_1 外部 IP 地址 48-94 32 Gbps 50 Gbps 7 Gbps 25 Gbps 96 32 Gbps 100 Gbps 7 Gbps 25 Gbps 通用 C3 虚拟机
下表介绍了 C3 虚拟机的出站带宽限制。
vCPU 数量 内部 IP Tier_1 内部 IP 地址 外部 IP Tier_1 外部 IP 地址 4 23 Gbps 不适用 7 Gbps 不适用 8 23 Gbps 不适用 7 Gbps 不适用 22 23 Gbps 不适用 7 Gbps 不适用 44 32 Gbps 50 Gbps 7 Gbps 25 Gbps 88 62 Gbps 100 Gbps 7 Gbps 25 Gbps 176 100 Gbps 200 Gbps 7 Gbps 25 Gbps 通用 C3D 虚拟机
vCPU 数量 内部 IP Tier_1 内部 IP 地址 外部 IP Tier_1 外部 IP 地址 4 20 Gbps 不适用 7 Gbps 不适用 8 20 Gbps 不适用 7 Gbps 不适用 16 20 Gbps 不适用 7 Gbps 不适用 30 20 Gbps 50 Gbps 7 Gbps 25 Gbps 60 40 Gbps 75 Gbps 7 Gbps 25 Gbps 90 60 Gbps 100 Gbps 7 Gbps 25 Gbps 180 100 Gbps 150 Gbps 7 Gbps 25 Gbps 360 100 Gbps 200 Gbps 7 Gbps 25 Gbps 计算优化 C2 虚拟机
下表介绍了 C2 虚拟机的出站带宽限制。
vCPU 数量 内部 IP Tier_1 内部 IP 地址 外部 IP Tier_1 外部 IP 地址 4 10 Gbps 不适用 (N/A) 7 Gbps 不适用 8 16 Gbps 不适用 7 Gbps 不适用 16 32 Gbps 不适用 7 Gbps 不适用 30 32 Gbps 50 Gbps 7 Gbps 7 Gbps 60 32 Gbps 100 Gbps 7 Gbps 7 Gbps 计算优化 C2D 虚拟机
下表介绍了 C2D 虚拟机的出站带宽限制。
vCPU 数量 内部 IP Tier_1 内部 IP 地址 外部 IP Tier_1 外部 IP 地址 2 10 Gbps 不适用 (N/A) 7 Gbps 不适用 4 10 Gbps 不适用 7 Gbps 不适用 8 16 Gbps 不适用 7 Gbps 不适用 16 32 Gbps 不适用 7 Gbps 不适用 32 32 Gbps 50 Gbps 7 Gbps 7 Gbps 56 32 Gbps 50 Gbps 7 Gbps 7 Gbps 112 32 Gbps 100 Gbps 7 Gbps 7 Gbps 计算优化型 H3 虚拟机
下表介绍了 H3 虚拟机的出站带宽限制。
vCPU 数量 内部 IP 外部 IP 88 200 Gbps 1 Gbps 内存优化型 M3 虚拟机
下表介绍了 M3 虚拟机的出站带宽限制。
vCPU 数量 内部 IP Tier_1 内部 IP 地址 外部 IP Tier_1 外部 IP 地址 32 32 Gbps 不适用 7 Gbps 不适用 64 32 Gbps 50 Gbps 7 Gbps 25 Gbps 128 32 Gbps 100 Gbps 7 Gbps 25 Gbps 存储优化 Z3 虚拟机
下表介绍了 H3 虚拟机的出站流量带宽限制。
vCPU 数量 内部 IP Tier_1 内部 IP 地址 外部 IP Tier_1 外部 IP 地址 88 62 Gbps 100 Gbps 7 Gbps 25 Gbps 176 100 Gbps 200 Gbps 7 Gbps 25 Gbps 配置使用 Tier_1 网络的虚拟机
如果虚拟机使用 gVNIC 网络接口,则可以在虚拟机创建期间启用 Tier_1 网络。您还可以修改虚拟机来添加或移除 Tier_1 网络,前提是该虚拟机创建时使用了 gVNIC 接口。
或者,您还可以使用 DPDK 加快网络数据包处理,以便在使用 Tier_1 网络的虚拟机上运行对性能要求高的应用。
创建使用 Tier_1 网络的虚拟机和容器
使用 Google Cloud 控制台、Google Cloud CLI 或 REST 将 Tier_1 网络添加到新虚拟机或容器。
控制台
gcloud
使用 gcloud compute instances create 命令创建使用 gVNIC 虚拟网络驱动程序的虚拟机。可以使用
--network-performance-configs
标志和--network-interface
标志为虚拟机配置网络性能设置。如果未指定这些标志,则系统会创建使用默认网络性能配置的虚拟机。如需创建运行容器映像的虚拟机,请使用 gcloud compute instances create-with-container 命令。
gcloud compute instances create VM_NAME \ --image=OS_IMAGE \ --machine-type=MACHINE_TYPE \ --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \ --network-interface=nic-type=GVNIC
替换以下内容:
例如:
gcloud compute instances create instance-1 \ --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \ --network-interface=nic-type=GVNIC \ --image-family=rocky-linux-8-optimized-gcp \ --image-project=rocky-linux-cloud \ --machine-type=n2-standard-32
REST
调用 Compute Engine API instances.insert 方法以创建具有高带宽网络配置的虚拟机。在请求正文中:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": VM_NAME, "description": string, ... "networkPerformanceConfig": { "totalEgressBandwidthTier": TIER_1 }, "networkInterfaces": [ { "nicType": "GVNIC" }, ... ] }
替换以下内容:
更新虚拟机以包含 Tier_1 网络
请参阅更新实例属性文档,以确保满足成功更新虚拟机的所有要求。可以使用 Google Cloud 控制台、Google Cloud CLI 或 REST 更新虚拟机。
您可以修改虚拟机来更改网络配置以包含或排除每个虚拟机的 Tier_1 网络性能。虚拟机必须已关联一个 gVNIC 接口;您无法修改虚拟机来添加网络接口。如需更新网络配置,您必须停止并重启虚拟机。
控制台
gcloud
REST
调用 instances.update 方法来修改网络配置。
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/RESOURCE_ID?most_disruptive_allowed_action=RESTART { "networkPerformanceConfig":{ "totalEgressBandwidthTier": "TIER_1" }, ... }
将
totalEgressBandwidthTier
设置为TIER_1
,可添加 Tier_1 网络。将其设置为DEFAULT
会移除该配置。替换以下内容:
most_disruptive_allowed_action=RESTART
查询参数会自动使用更新后的配置重启虚拟机。验证虚拟机中的高带宽配置
使用 Google Cloud 控制台、Google Cloud CLI 或 REST 生成现有虚拟机或运行容器映像的现有虚拟机的描述,以验证该虚拟机的带宽层级。
控制台
gcloud
使用
gcloud compute instances describe
命令检查您的虚拟机是否使用每个虚拟机的 Tier_1 网络性能。例如:
gcloud compute instances describe VM_NAME \ --format="text(name, networkPerformanceConfig)"
输出类似于以下内容:
name: instance-1 networkPerformanceConfig.totalEgressBandwidthTier:TIER_1
如果输出显示值
DEFAULT
,则表示 Tier_1 网络未启用。REST
调用 Compute Engine API
instances.get
方法以查看网络配置。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/RESOURCE_ID/
替换以下内容:
输出应该包含以下行:
{ "name": RESOURCE_ID, "description": string, ... "networkPerformanceConfig": { "totalEgressBandwidthTier": "TIER_1" }, ... }
如果输出显示值
DEFAULT
,则表示 Tier_1 网络未启用。创建使用 Tier_1 网络的实例模板
使用 Google Cloud 控制台、Google Cloud CLI 或 REST 创建具有每个虚拟机 Tier_1 网络性能的实例模板。请参阅创建实例模板文档,以确保满足创建虚拟机实例模板的所有要求。
控制台
gcloud
将
gcloud compute instance-templates create
命令与--network-performance-configs
和--network-interface
标志结合使用。gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --image=OS_IMAGE \ --machine-type=MACHINE_TYPE \ --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \ --network-interface=nic-type=GVNIC
替换以下内容:
例如:
gcloud compute instance-templates create instance-template-1 \ --image-family=rocky-linux-8-optimized-gcp \ --image-project=rocky-linux-cloud \ --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \ --machine-type=n2-standard-32 \ --network-interface=nic-type=GVNIC
REST
调用 Compute Engine API
instanceTemplates.insert
方法。在请求正文中,将networkPerformanceConfig
参数设置为totalEgressBandwidthTier
和TIER_1
。将networkInterfaces
参数设置为nicType
和GVNIC
。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instancesTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", ... "networkPerformanceConfig": { "totalEgressBandwidthTier": "TIER_1" }, "networkInterfaces": [ { "nicType": "GVNIC" }, ... }
替换以下内容:
对较高的带宽配置进行基准化分析
您可以运行基准测试,使用每个虚拟机的 Tier_1 网络性能检查虚拟机的性能。请务必移除您在测试期间创建的基准化分析资源,以避免产生意外的资源费用。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-11-21。
-