Performance Guide

This guide describes the observed performance characteristics of the Connectors system under load and provides recommendations for high-concurrency environments.

INFO

The following observations are from internal testing. Actual performance may vary depending on your cluster resources and workload.

  • Connector status updates: No observable delay when managing 1,000 connectors simultaneously.
  • Forward proxy (HTTPS): Introduces a small amount of additional latency at 50 concurrent requests. Latency increases gradually as concurrency rises.
  • Forward proxy (HTTP): Introduces a small amount of additional latency at 50 concurrent requests. Latency increases slowly with higher concurrency.
  • Reverse proxy: Introduces minimal additional latency at 50 concurrent requests that grows slowly under load.
  • All proxy modes at 100 concurrent requests: Latency increases but the system remains stable without errors or crashes.
  • OCI/Harbor image push/pull (HTTP forward proxy): No significant performance degradation observed across a wide range of concurrent operations; validated with Harbor's official benchmark tool.

Performance Configuration

If you experience slow proxy requests or occasional failures under high load, apply the following configuration to increase throughput.

  • Scale replicas for the connectors-proxy, connectors-controller-manager, connectors-api, and plugin components.
  • Increase -kube-api-qps and -kube-api-burst to raise the request rate limit to the Kubernetes API.

The whole Connectors install is driven by a single ConnectorsConfig resource (see the Installation Guide). To tune throughput, edit that same ConnectorsConfig and set workload settings under spec.components.<name>.spec.workloads.

Example ConnectorsConfig that tunes the core and oci components:

apiVersion: operator.connectors.alauda.io/v1alpha1
kind: ConnectorsConfig
metadata:
  name: connectors-config
spec:
  components:
    core:
      spec:
        workloads:
          - name: connectors-proxy
            replicas: 2
            template:
              spec:
                containers:
                  - name: proxy
                    args:
                      - --metrics-bind-address=:8443
                      - -kube-api-qps=60
                      - -kube-api-burst=80
                    resources:
                      requests:
                        cpu: 100m
                        memory: 100Mi
                      limits:
                        cpu: 250m
                        memory: 250Mi
          - name: connectors-controller-manager
            replicas: 2
          - name: connectors-api
            replicas: 2
    oci:
      spec:
        workloads:
          - name: connectors-oci-plugin
            replicas: 2
            template:
              spec:
                containers:
                  - name: plugin
                    args:
                      - -metrics-bind-address=:8082
                      - -kube-api-qps=60
                      - -kube-api-burst=80