我们有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
答案 0 :(得分:0)
我不会说这与 loadbalancer 有关。请记住,与本地可用的内容相比,下载云中托管的内容将始终花费更多的时间。
如果您怀疑 loadbalancer 可能会有所作为,则应该将其与直接从 GKE 节点下载的速度进行比较。您可以通过NodePort
Deployment
公开 nginx Service
,并使用 loadbalancer 避免这种方式。如果与通过 loadbalancer 下载所需的时间相比,下载时间要少得多,那么您可以将其归咎于 loadbalancer 。但是我非常确定结果将几乎相同。
您在哪里拥有本地k8s集群?它在您本地网络的某个地方吗?还是在运行wget
的同一台计算机上运行的 VM 上?如果是这样,与从任何云托管虚拟机下载相比,它总是花费的时间要少得多。
下载速度和延迟之类的网络参数也将取决于您的 GKE集群所在的区域。托管在其中。如果这是一个离您的位置很远的区域,那么与那些离您较近的区域相比,这些参数可能会有很大的不同。