Lambda resources

The luna-lambda service provides ways to configure available resources for lambda.

User can adjust multiple parameters during lambda creation, lambda import or lambda update:
  • ‘cpu_limit’ - CPU resource units limit for each of lambda’s pods. 1 unit means 1/1000 of CPU core.

  • ‘ram_limit’ - Maximum RAM usage limit in GB for each of lambda’s pods.

  • ‘cpu_request’ - CPU resource units request for each of lambda’s pods.

  • ‘ram_request’ - RAM usage request in GB for each of lambda’s pods.

  • ‘enable_gpu’ - Whether to enable GPU usage for lambda.

By default this parameters does not checked before lambda creation and resulting lambda deployment could fail this limits are in conflict with k8s cluster configuration.

Limits to this parameters can be set via LAMBDA_RESOURCE_LIMITS setting, that should describe resources limits per namespace (allowed_namespaces section should not contain duplicates). If this setting set correct and deploy_parameters.check_resources parameter is set to true during lambda creation, update or import, then provided limits will be checked before lambda creation.

Note: that resource limits of k8s cluster can still differ from ‘LAMBDA_RESOURCE_LIMITS’ which can cause lambda launch fail

Configured resource limits could be checked via lambda resources request.