首页 > 解决方案 > GKE 和 RPS - “使用量已满” - 以及性能问题

问题描述

我们有一个带有 Ingress 的 GKE 集群(kubernetes.io/ingress.class:“gce”),其中一个后端为我们的生产站点提供服务。

该集群是区域性的,启用了 3 个区域(启用了自动缩放)。

后端服务生产站点是作为部署运行的 Varnish 服务器 - 单个副本。在 Varnish 后面有多个 Nginx/PHP pod 在 Horizo​​ntalPodAutoscaler 下运行。

该网站的性能很慢。我们注意到通过使用 GCP 控制台,所有流量都仅路由到一个后端,并且一个区域中只有 1/1 健康端点?

我们在服务后端旁边收到感叹号,并显示消息“Usage is at capacity, max = 1”和“Backend利用率:0%”。第二个区域中的另一个后端没有配置端点?第三区没有第三人支持?

最初,我们以大约 80RPS 的速率从后端收到大量 5xx 响应,因此我们通过 BackendConfig 打开了 CDN。

这已将 5xx 响应(包括后端的 RPS)减少到大约 9RPS,并且大约 83% 的 RPS 由 CDN 提供。

我们正试图弄清楚是否有可能提高我们的后端利用率,因为显然可以轻松实现从一台后面有许多 pod 的 Varnish 服务器提供 80RPS。在这种情况下,我们找不到任何表现不佳的 POD(varnish 本身或 nginx/php)。

GKE/GCP 是否限制后端/端点仅支持 1RPS?

有没有办法增加每个端点的 RPS 并增加端点的数量,每个区域至少一个?

是否有任何可用的文档解释如何在 GKE/GCP 上扩展此类架构?

标签: performancekubernetesgoogle-cloud-platformgoogle-kubernetes-engine

解决方案


推荐阅读