Envoy Gateway性能调优
Envoy Gateway是一款高性能网关,在生产环境中,需要通过参数调优,以保证其充分发挥高性能的优势。本文介绍通过创建BackendTrafficPolicy配置熔断参数来适配高并发业务场景。
前提条件
集群内已创建Gateway和HTTPRoute。
参数调优
- 调高最大连接数
Envoy 能够与上游目标建立的最大 HTTP1.1/TCP 连接数。如果达到此限制,新的连接将被拒绝。默认值1024,高并发场景建议调高最大连接数(maxConnections)设置为65536。
- 调高等待请求队列大小
当没有可用的连接或连接池已满时,允许在队列中等待调度的最大请求数。超过此限制的请求将直接被拒绝。在高并发环境下,如果连接队列过小,则可能导致队列溢出,使部分连接无法建立。默认值1024,高并发场景建议调高等待请求队列大小(maxPendingRequests)设置为65536。
- 调高最大请求数
在上游所有连接上正在进行的最大并发请求数。该限制同样适用于 HTTP2 路由。如果并发请求量超过此设定值,后续请求将直接触发熔断限制。默认值1024,高并发场景建议调高最大请求数(maxParallelRequests)设置为65536。
配置示例
- 创建BackendTrafficPolicy,关联在Gateway上或HTTPRoute上。
示例如下:
apiVersion: gateway.envoyproxy.io/v1alpha1 kind: BackendTrafficPolicy metadata: name: backend-cb namespace: default spec: targetRefs: - group: gateway.networking.k8s.io kind: Gateway # Gateway或HTTPRoute name: my-gateway # Gateway或HTTPRoute名称 circuitBreaker: maxConnections: 65536 # 到后端的最大连接数 maxPendingRequests: 65536 # 等待请求队列大小 maxParallelRequests: 65536 # 最大并行请求数 maxParallelRetries: 3 # 最大并行重试次数 - 查看BackendTrafficPolicy状态。
kubectl get BackendTrafficPolicy backend-cb -oyaml
回显如下:apiVersion: gateway.envoyproxy.io/v1alpha1 kind: BackendTrafficPolicy metadata: creationTimestamp: "2026-05-30T09:00:47Z" generation: 1 name: backend-cb namespace: default resourceVersion: "9674343" uid: 43eecacb-5974-49d6-bc6e-1419b0d23496 spec: circuitBreaker: maxConnections: 65536 maxParallelRequests: 65536 maxParallelRetries: 3 maxPendingRequests: 65536 targetRefs: - group: gateway.networking.k8s.io kind: Gateway name: my-gateway status: ancestors: - ancestorRef: group: gateway.networking.k8s.io kind: Gateway name: my-gateway namespace: default conditions: - lastTransitionTime: "2026-05-30T09:00:47Z" message: Policy has been accepted. observedGeneration: 1 reason: Accepted status: "True" #Accepted: True(已受理) type: Accepted controllerName: gateway.envoyproxy.io/gatewayclass-controller