我正在Google Cloud Kubernates服务上部署群集。它已经有几个节点。另外,我需要带有Google Cloud的GPU的服务器才能使其与集群兼容。 GPU实例持续处理传入流量(带宽应达到 1Gb / s ),并在群集节点上发送结果(带宽应甚至大于传入带宽)。
项目中对我来说最关键的事情:
1)集群内部这些节点之间的带宽;
2)节点与GPU服务器之间的带宽;
3)GPU服务器与世界之间的带宽;
4)节点与世界之间的带宽。
在下载和上传两者时,每个节点的最小适当带宽为 1 Gb / s 。当我进行速度测试时,它同时显示同一节点的下载速度 100-680 Mb / s 和上传速度 67-138 Mb / s (以下屏幕截图)彼此之间的间隔时间为30秒)。因此,当前带宽太小且不稳定。但是我需要从 1 Gb / s 开始的稳定带宽。
我试图在Google文档中找到有关带宽的任何技术规格或价格。但是,技术规范中只有CPU / GPU / RAM /磁盘,而没有带宽。而且,文档每月只按流量计费。
TL; DR:
如何为每个群集节点,GPU实例和任何其他Google Cloud虚拟机设置稳定的 1 Gb / s 或更高的带宽?
Google Cloud中是否有提供带宽超过 1 Gb / s 的服务?
Google Cloud中是否有解决方案/服务可以处理大量互联网流量?
P.S。速度测试是通过以下方式进行的:
npx speedo-cli
答案 0 :(得分:1)
实际上并不能保证,尤其是在往返于GCP之外的网络的流量方面。不过,您可以采取以下措施来最大程度地提高带宽:
增加每个实例的 CPU内核数量:
上限取决于虚拟机实例具有的vCPU数量。每个核心都具有2 Gbits / second(Gbps)的上限,以实现最佳性能。每个附加内核都会增加网络上限,每个虚拟机的理论上限为16 Gbps。 source
2 Gbps per vCPU
上限代表使用内部网络的理论限制:
该上限是不能超过的限制,并且不表示出口流量的实际吞吐量。无法保证您的流量将达到最大吞吐量,这取决于上限以外的许多因素。 source
如果VM之间存在流量(例如,问题1和2),请确保VM 位于同一区域,并且您正在使用内部IP :
每次在虚拟机之间传输数据或进行通信时,始终使用内部IP进行通信就可以实现最高性能。在许多情况下,速度差异可能很大。 source
iperf
测量VM之间的网络带宽。对于高级用例,您可以在VM中尝试fine-tuning the TCP window size。
最后,one benchmark观察到the GCP network throughput is 81x more variable when compared to AWS
。自然,这仅反映了一个基准,但是您可能会发现值得自己测试其他提供商。
答案 1 :(得分:1)
自Aleksi回答以来,每个VM的出口限额/节流阀已发生了一些变化。它仍然以2 Gbit / s * NumberOfvCPUs的形式进行计算,但是现在最大为32 Gbit / s(当创建的虚拟机使用具有skylake的min_cpu_platform或更佳的虚拟机时),对于具有2个或更多虚拟机的VM,最低为10 Gbit / s vCPU。
我不清楚您的速度测试的端点是什么,但是TCP连接的吞吐量的(许多)限制之一是:
吞吐率<= WindowSize / RoundTripTime
人们希望GPU实例和节点之间的位置彼此靠近,但是这个限制可能会影响GPU实例和世界的节点。
除此之外,了解可变吞吐量所发生的情况可能需要在发送方(最好也在接收方)进行数据包跟踪。在这种情况下,每个数据包的前96个字节就足够了。这将是支持组织要求的事情之一。
答案 2 :(得分:0)
我担心您无法在互通的基础架构中做出任何承诺。如果您有(大量)现金,则将sole-tenant [1]与同一租户的体系结构的所有部分一起使用可以帮助解决外部寄生虫。 但是在这种情况下,对网络带宽没有任何承诺。而且,目前,此解决方案不支持GPU。