更新时间:2026-06-05 GMT+08:00
分享

Envoy Gateway性能调优

Envoy Gateway是一款高性能网关,在生产环境中,需要通过参数调优,以保证其充分发挥高性能的优势。本文介绍通过创建BackendTrafficPolicy配置熔断参数来适配高并发业务场景。

前提条件

集群内已创建Gateway和HTTPRoute。

参数调优

  • 调高最大连接数

    Envoy 能够与上游目标建立的最大 HTTP1.1/TCP 连接数。如果达到此限制,新的连接将被拒绝。默认值1024,高并发场景建议调高最大连接数(maxConnections)设置为65536。

  • 调高等待请求队列大小

    当没有可用的连接或连接池已满时,允许在队列中等待调度的最大请求数。超过此限制的请求将直接被拒绝。在高并发环境下,如果连接队列过小,则可能导致队列溢出,使部分连接无法建立。默认值1024,高并发场景建议调高等待请求队列大小(maxPendingRequests)设置为65536。

  • 调高最大请求数

    在上游所有连接上正在进行的最大并发请求数。该限制同样适用于 HTTP2 路由。如果并发请求量超过此设定值,后续请求将直接触发熔断限制。默认值1024,高并发场景建议调高最大请求数(maxParallelRequests)设置为65536。

配置示例

  1. 创建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    # 最大并行重试次数

  2. 查看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

相关文档