通过Google云负载平衡器实现速度差异

时间:2020-03-19 13:58:30

标签: google-cloud-platform google-kubernetes-engine google-cloud-load-balancer

我们有k8s集群,其中的应用托管在GKE上。 当我们尝试通过Google云负载平衡器获取静态内容(8.25Mb)时,检索时间为3.8s,而当我们尝试通过nginx直接在VM中的k8s集群上进行操作时,则需要0.2s。速度差异可能是什么原因? Google云负载均衡器是否有带宽设置?


~$ wget https://.../main.js
...
HTTP request sent, awaiting response... 200 OK
Length: 8649943 (8.2M) [application/javascript]
Saving to: 'main.js'
main.js               100%[========================================================================================>]   8.25M  2.27MB/s    in 3.8s 


__________________________________

Nginx

~$ wget https://.../main.js
...
Saving to: 'main.js'
main.js               100%[========================================================================================>]   8.25M  50.2MB/s    in 0.2s

1 个答案:

答案 0 :(得分:0)

我不会说这与 loadbalancer 有关。请记住,与本地可用的内容相比,下载云中托管的内容将始终花费更多的时间。

如果您怀疑 loadbalancer 可能会有所作为,则应该将其与直接从 GKE 节点下载的速度进行比较。您可以通过NodePort Deployment公开 nginx Service,并使用 loadbalancer 避免这种方式。如果与通过 loadbalancer 下载所需的时间相比,下载时间要少得多,那么您可以将其归咎于 loadbalancer 。但是我非常确定结果将几乎相同。

您在哪里拥有本地k8s集群?它在您本地网络的某个地方吗?还是在运行wget的同一台计算机上运行的 VM 上?如果是这样,与从任何云托管虚拟机下载相比,它总是花费的时间要少得多。

下载速度延迟之类的网络参数也将取决于您的 GKE集群所在的区域。托管在其中。如果这是一个离您的位置很远的区域,那么与那些离您较近的区域相比,这些参数可能会有很大的不同。