gcp 实例可以与单个网络接口一起使用的最大带宽是多少?

Posted

技术标签:

【中文标题】gcp 实例可以与单个网络接口一起使用的最大带宽是多少?【英文标题】:What is the maximum bandwidth gcp instance can use with single network interface? 【发布时间】:2020-03-26 23:10:50 【问题描述】: 我正在使用 n 个并行进程将数据上传到 Google 云存储桶,出口数据速率约为 16Gbps。 仅使用 n 个并行进程从 gcp 存储桶下载数据,入口流量约为 26Gbps。 但是当我以相同的编号同时执行上传和下载时。进程中,入口速率降低到 ~7Gbps,出口速率降低到 ~11/12Gbps。 使用不同的存储桶进行上传和下载。实例和存储桶在同一个区域。 使用 Windows Server 2012 r2 操作系统,配置为 n1-standard-32(32 个 vCPU,120 GB 内存)。 上传和下载 api 在 C# REST api 中使用 httprequests。 GCP 文档未提及任何带宽上限:https://cloud.google.com/vpc/docs/quota#per_instance。 适配器的 LinkSpeed 为 100 Gbps 如果仅上传和仅下载占用全部带宽,那么我假设同时执行两者应该可以扩展至 ~16Gbps。 每个 gcp 实例的总流量是否有上限? 单个网络接口 gcp 实例可以使用的最大带宽是多少?

【问题讨论】:

我不是足够的专家来解释这一点,但是当您发送和接收数据时,它应该在网络拥塞/冲突和开销 ACK 消息中有所作为。最后,16Gbps 的下载是最好的情况,可能你的测试在网络上做错了! Wojciech Bogacz 的回答很好。谷歌将带宽限制在每个核心 2 Gbps(入口+出口)和 16 或 32 Gbps 的最大值,具体取决于 CPU 架构。这些是理论数字,并非保证。请记住,您在虚拟化平台上。链接速度之类的项目是逻辑的,而不是物理的。 CPU 片分配非常多变。对于实数,您需要一个裸机实例,以便您控制一切(您是整个机器上运行的唯一进程)。 仅供参考,几天前我们将 2/4 核机器的出口传输速率提高到 10gbps:cloud.google.com/compute/docs/release-notes#november222019 【参考方案1】:

GCP does not cap the ingress or egress traffic - 但这一切都取决于机器可以处理什么以及可以占用多少网络(取决于网络条件)。

您链接到的文档说没有上限,但它说的是

出口和入口带宽取决于机器类型

它还指出(在“Notes”列的“Maximum ingress data rate”下,您应该只为一台机器计划 10Gbps:

出于容量规划的目的,您应该假设每个 VM 实例可以处理不超过 10 Gbps 的外部 Internet 流量。

您可以在文档中查找max bandwidth for various machine types。您有 N1 32cpu,其限制为 32Gbps(

32 Gbps 适用于 Skylake 或更高版本的 CPU 平台。所有其他平台为 16 Gbps

考虑到您确实有效地实现了大约 26 Gbps,我会说这是非常好的结果 - 而且在不理想的网络条件下。

There's more:

网络带宽达到指定的限制。实际性能取决于网络拥塞或协议开销等因素。

取决于测量方法 - 在我看来,您几乎达到了单个 GCP VM 的任意带宽限制。

如果我是你,我会坚持使用这个数字并做出相应的计划。如果你想要更快的速度,那么你可以写 GCP 支持并询问。

【讨论】:

我使用 GCP 已有 2 年了。无论如何,我无法将超过 1Gbps 的文件上传到他们的 SSH(基于 Web)控制台.. “无论如何我都无法将超过 1Gbps 的文件上传到他们的 SSH(基于 Web)控制台。” ssh 有一个应用程序级别的流量控制机制,它将排除在高带宽 Xdelay 产品网络上的高吞吐量。它被烘焙到 ssh 中。【参考方案2】:

Wojciech 的答案开头有一个错误。 Google 确实对 VM 的流量应用了出口上限/节流。

在运行各种测试时,您是否一直在查看虚拟机中每个 vCPU 的利用率?不仅是整体 CPU 利用率,还有每个 vCPU。您想查看是否有任何单个 vCPU 正在饱和。此外,这些上传/下载是从/到 VM 中的存储还是仅仅是内存?您可能希望在运行测试时查看 VM 存储的利用率。

您还可以查看 vNIC 接收队列的深度恰好是多少,以及它是否已经达到最大值。

编辑:如果您还没有,您可以考虑启用对 Google 服务的私人访问选项之一:https://cloud.google.com/vpc/docs/private-access-options

【讨论】:

以上是关于gcp 实例可以与单个网络接口一起使用的最大带宽是多少?的主要内容,如果未能解决你的问题,请参考以下文章

ECS 实例网络带宽

Linux常用网络带宽监控工具(转)

将 Redis 集群缩减为单个 GCP 内存存储

关于网络和带宽(全双工与半双工带宽区别)

18个监控网络带宽的Linux命令行工具

网卡多队列 (解决traceroute路由不能直达)以及高丢包问题