Skip to content

Configure resource requests and limits

You can configure resource limits and requests, specifically for CPU and memory, for individual Knative services.

The following example shows how you can set the requests and limits fields for a service:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: example-service
  namespace: default
spec:
  template:
    spec:
      containers:
        - image: docker.io/user/example-app
          resources:
            requests:
              cpu: 100m
              memory: 640M
            limits:
              cpu: 1

Configure Queue Proxy resources

In order to set the Queue Proxy resource requests and limits you can either set them globally in the deployment config map or you can set them at the service level using the corresponding annotations targeting cpu, memory and ephemeral-storage resource types. The above example becomes:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: example-service
  namespace: default
spec:
  template:
    metadata:
      annotations:
        queue.sidecar.serving.knative.dev/cpu-resource-request: "1"
        queue.sidecar.serving.knative.dev/cpu-resource-limit: "2"
        queue.sidecar.serving.knative.dev/memory-resource-request: "1Gi"
        queue.sidecar.serving.knative.dev/memory-resource-limit: "2Gi"
        queue.sidecar.serving.knative.dev/ephemeral-storage-resource-request: "400Mi"
        queue.sidecar.serving.knative.dev/ephemeral-storage-resource-limit: "450Mi"
    spec:
...

Alternatively, you could use a special annotation queue.sidecar.serving.knative.dev/resource-percentage that calculates the Queue Proxy resources as a percentage of the application's container. In this case there are min, max boundaries applied to the cpu and memory resource requirements:

Resource Requirements Min Max
Cpu Request 25m 100m
Cpu Limit 40m 500m
Memory Request 50Mi 200Mi
Memory Limit 200Mi 500Mi

Note

If the user simultaneously sets a percentage annotation and a specific resource value via the corresponding resource annotation then the latter takes precedence.

Warning

The queue.sidecar.serving.knative.dev/resource-percentage annotation is now deprecated and will be removed in future versions.

Additional resources

We use analytics and cookies to understand site traffic. Information about your use of our site is shared with Google for that purpose. Learn more.

× OK