本文档介绍如何通过创建两个虚拟机以及前后流式传输流量来观察网络性能,以测试每个虚拟机的 Tier_1 网络性能。要利用此功能,您必须在支持 Google 虚拟 NIC (gVNIC) 的操作系统中创建虚拟机。为了满足每个虚拟机的 Tier_1 层级网络性能要求,需要设置更大的虚拟机大小,因此请确认您有足够的 CPU 配额来创建这些虚拟机。
准备工作
- 确保您使用的是公共的、支持 gVNIC 的映像,或者在您的项目中创建自定义映像。
- 验证您是否已创建 VPC 防火墙规则,以允许端口 TCP:5001 或您选择的其他端口中的入站流量,从而进行
iperf
性能测试。 - 使用 iPerf 版本 2(而非版本 3)执行基准测试。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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.
如需创建映像,请使用 gcloud compute images create 命令。
gcloud compute images create IMAGE_NAME \ --project=PROJECT_ID \ --source-image-family=SOURCE_IMAGE_FAMILY \ --source-image-project=SOURCE_IMAGE_PROJECT \ --guest-os-features=GVNIC
请替换以下内容:
- PROJECT_ID:您的项目的名称。
- IMAGE_NAME:您要创建的映像的名称。
- SOURCE_IMAGE_FAMILY:所需的公共映像版本。对于此测试,请使用
ubuntu-2004-lts
。 - SOURCE_IMAGE_PROJECT:包含来源映像的项目名称。 对于此测试,请使用
ubuntu-os-cloud
。
示例
gcloud compute images create benchmark-image-test \ --project=my-project \ --source-image-family=ubuntu-2004-lts \ --source-image-project=ubuntu-os-cloud \ --guest-os-features=GVNIC
创建一个采用最高 MTU 设置的自动模式 VPC 网络:
gcloud compute networks create NETWORK_NAME \ --project=PROJECT_ID \ --subnet-mode=AUTO --mtu=8896
请替换以下内容:
- PROJECT_ID:您的项目的名称。
- NETWORK_NAME:网络的名称。
创建两个相同的实例:
gcloud compute instances create \ VM_NAME_1 VM_NAME_2 \ --project=PROJECT_ID \ --zone=ZONE \ --machine-type=n2-standard-64 \ --image=projects/PROJECT_NAME/global/images/IMAGE_NAME \ --network=NETWORK_NAME \ --network-interface=nic-type=GVNIC \ --network-performance-configs=total-egress-bandwidth-tier=TIER_1
请替换以下内容:
- VM_NAME_1 和 VM_NAME_2:您要创建的虚拟机实例的名称。
- PROJECT_ID:您的项目名称。
- ZONE:您的虚拟机所在的可用区。两个虚拟机必须位于同一可用区中。
- PROJECT_NAME/global/images/IMAGE_NAME:项目名称和映像名称。
- NETWORK_NAME:您为其配置了最高 MTU 设置的网络的名称。
在终端窗口中,运行以下命令:
/sbin/ifconfig | grep mtu
报告的 MTU 应为 8896。
ens4: flags=4163 mtu 8896 lo: flags=73 mtu 65536
- VM_NAME_1:您要查看的虚拟机实例的名称。
- VM_NAME_2:您要查看的虚拟机实例的名称。
- PROJECT_ID:您的项目名称。
- ZONE:您的虚拟机所在的可用区。两个虚拟机必须位于同一区域。
如果您尚未完成设置虚拟机以进行基准测试中的步骤,请现在完成这些步骤。
两个虚拟机运行后,使用 SSH 连接到其中一个虚拟机。
gcloud compute ssh VM_NAME_1 \ --project=PROJECT_ID
请替换以下内容:
- VM_NAME_1:您的第一个虚拟机的名称。
- PROJECT_ID:您的项目名称。
在第一个虚拟机上,完成以下步骤:
安装
iperf
。sudo apt-get update && sudo apt-get install iperf
获取此虚拟机的内部 IP 地址。记下内部 IP 地址以备后用。
ip a
启动 iPerf 服务器。
iperf -s
它会启动一个服务器来侦听连接,以便执行基准测试。在测试期间,让 iPerf 服务器保持运行。
在单独的客户端终端中,使用 SSH 连接到第二个虚拟机。
gcloud compute ssh VM_NAME_2 \ --project=PROJECT_ID
请替换以下内容:
- VM_NAME_2:您的第二个虚拟机的名称。
- PROJECT_ID:您的项目名称。
在第二个虚拟机上,完成以下步骤:
安装 iPerf。
sudo apt-get update && sudo apt-get install iperf
运行 iperf 测试,并将第一个虚拟机的 IP 地址指定为目标。
iperf -t 30 -c internal_ip_of_instance_1 -P 16
这会执行 30 秒测试。如果 iPerf 无法访问其他虚拟机,则可能需要调整虚拟机或 Google Cloud 控制台中的网络或防火墙设置。
结果应类似于以下示例:它显示了启用 Tier_1 网络后
n2-standard-64
的 75 Gbps 出站流量带宽限制,超过了默认的 32 Gbps 出站流量带宽限制。------------------------------------------------------------ Client connecting to 10.128.0.10, TCP port 5001 TCP window size: 1.59 MByte (default) ------------------------------------------------------------ [ 12] local 10.128.0.11 port 57722 connected with 10.128.0.10 port 5001 [ 11] local 10.128.0.11 port 57720 connected with 10.128.0.10 port 5001 [ 16] local 10.128.0.11 port 57730 connected with 10.128.0.10 port 5001 [ 6] local 10.128.0.11 port 57710 connected with 10.128.0.10 port 5001 [ 13] local 10.128.0.11 port 57724 connected with 10.128.0.10 port 5001 [ 8] local 10.128.0.11 port 57712 connected with 10.128.0.10 port 5001 [ 9] local 10.128.0.11 port 57716 connected with 10.128.0.10 port 5001 [ 14] local 10.128.0.11 port 57726 connected with 10.128.0.10 port 5001 [ 15] local 10.128.0.11 port 57728 connected with 10.128.0.10 port 5001 [ 10] local 10.128.0.11 port 57718 connected with 10.128.0.10 port 5001 [ 4] local 10.128.0.11 port 57706 connected with 10.128.0.10 port 5001 [ 5] local 10.128.0.11 port 57708 connected with 10.128.0.10 port 5001 [ 3] local 10.128.0.11 port 57704 connected with 10.128.0.10 port 5001 [ 17] local 10.128.0.11 port 57732 connected with 10.128.0.10 port 5001 [ 7] local 10.128.0.11 port 57714 connected with 10.128.0.10 port 5001 [ 18] local 10.128.0.11 port 57734 connected with 10.128.0.10 port 5001 [ ID] Interval Transfer Bandwidth [ 12] 0.0-30.0 sec 7.63 GBytes 2.19 Gbits/sec [ 11] 0.0-30.0 sec 17.7 GBytes 5.07 Gbits/sec [ 16] 0.0-30.0 sec 9.15 GBytes 2.62 Gbits/sec [ 6] 0.0-30.0 sec 43.8 GBytes 12.6 Gbits/sec [ 13] 0.0-30.0 sec 23.6 GBytes 6.76 Gbits/sec [ 8] 0.0-30.0 sec 13.3 GBytes 3.80 Gbits/sec [ 9] 0.0-30.0 sec 9.29 GBytes 2.66 Gbits/sec [ 14] 0.0-30.0 sec 19.6 GBytes 5.62 Gbits/sec [ 15] 0.0-30.0 sec 12.5 GBytes 3.58 Gbits/sec [ 10] 0.0-30.0 sec 11.1 GBytes 3.19 Gbits/sec [ 4] 0.0-30.0 sec 19.0 GBytes 5.43 Gbits/sec [ 5] 0.0-30.0 sec 7.32 GBytes 2.10 Gbits/sec [ 3] 0.0-30.0 sec 8.78 GBytes 2.51 Gbits/sec [ 17] 0.0-30.0 sec 17.5 GBytes 5.02 Gbits/sec [ 7] 0.0-30.0 sec 33.4 GBytes 9.57 Gbits/sec [ 18] 0.0-30.0 sec 7.64 GBytes 2.19 Gbits/sec [SUM] 0.0-30.0 sec 261 GBytes 74.9 Gbits/sec
若要移除您为基准测试创建的实例,请使用
gcloud compute instances delete
命令。gcloud compute instances delete \ VM_NAME_1 VM_NAME_2 \ --project=PROJECT_ID \ --zone=ZONE
请替换以下内容:
- VM_NAME_1 和 VM_NAME_2:您要删除的两个虚拟机实例的名称。
- PROJECT_ID:您的项目名称。
- ZONE:您的虚拟机所在的可用区。两个虚拟机应位于同一可用区。
若要移除您为基准测试创建的网络,请使用
gcloud compute networks delete
命令。gcloud compute networks delete NETWORK_NAME \ --project=PROJECT_ID
请替换以下内容:
- NETWORK_NAME:您要删除的网络的名称。
- PROJECT_ID:您的项目名称。
若要移除您为基准测试创建的映像,请使用
gcloud compute images delete
命令。gcloud compute images delete IMAGE_NAME \ --project=PROJECT_ID
请替换以下内容:
- IMAGE_NAME:要删除的映像的名称。
- PROJECT_ID:您的项目名称。
- 了解 Tier_1 层级网络价格。
- 如需了解适用于其他机器类型的相关信息,请参阅带宽层级。
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 层级网络性能且采用了最高的最大传输单元 (MTU) 设置的
n2-standard-64
vCPU 机器。这样,您虚拟机的出站流量带宽速率最高将可达 75 Gbps(使用内部 IP)。gcloud
执行基准测试
两个虚拟机必须位于同一可用区和同一 VPC 网络中。在基准测试期间,这两个虚拟机对 VPC 网络路径进行双向测试。
验证 MTU 设置
在其中一个虚拟机的客机操作系统中使用
ifconfig
,以确认您的虚拟私有云 (VPC) 网络配置了最高的 MTU 设置。验证虚拟机配置
通过检查虚拟机属性确认虚拟机已启用 Tier_1 网络。
gcloud
如需查看实例,请使用 gcloud compute instances describe 命令。
gcloud compute instances describe VM_NAME_1 \ --project=PROJECT_ID \ --zone=ZONE \ --format="text(networkPerformanceConfig)"
gcloud compute instances describe VM_NAME_2 \ --project=PROJECT_ID \ --zone=ZONE \ --format="text(networkPerformanceConfig)"
请替换以下内容:
在响应中,您应该会看到以下内容:
networkPerformanceConfig.totalEgressBandwidthTier: TIER_1
使用 iPerf 在基于 Debian 的系统上执行基准测试
gcloud
进行基准测试后移除资源
移除您在基准测试期间创建的资源,以避免为映像和其他虚拟机产生费用。
gcloud
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-12-03。
-