Lambda limits for concurrent executions

0

Hi Guys,

we are thinking about implementing Lambda for our project. However we are not sure about concurrent executions limits.

According to this resource:
https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html

There is info that there is 1,000 concurrent executions default limit.

But then bellow there is another info:
Invocation frequency per Region (requests per second):
10 x concurrent executions limit (synchronous – all sources)
10 x concurrent executions limit (asynchronous – non-AWS sources)
Unlimited (asynchronous – AWS service sources)

Mismatch information: 1000 vs unlimited in case of AWS service sources and 1000 vs 10 concurrent executions limit in case of non-AWS sources.

Which is correct? Maybe we just misunderstood it = could anyone elaborate it more?

Jelenik
asked 4 years ago3503 views
4 Answers
0

The invocation frequency limit is not the same thing as the concurrent execution limit. The invocation frequency limit is based on the concurrent execution limit, and they describe two different things.

The concurrent execution limit is how many active lambda instances your account may have at any given time. If this limit is reached, any subsequent invocation attempts will receive throttling errors until at least one of the active lambdas instances completes.

The invocation frequency limit is 10x the concurrent execution limit, so for the default concurrent execution limit of 1000, the invocation frequency limit is 10000/second. This controls how many lambda instances can be started per second. If this limit is exceeded, invocation attempts will receive throttling errors until the rate of invocations slows. Notably, this limit only applies to lambdas that have sub-second durations, as if the duration is longer, it will first run into the burst concurrency limit and receive throttling errors from that first. See https://docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.html for more information on the burst limit.

Also please note that of the above limits you can request limit increases for the concurrent execution limit only, which will indirectly increase the invocation frequency limit.

Ellison
answered 4 years ago
0

Thank you very much for clarification. It is a clear now.

Jelenik
answered 4 years ago
0

The invocation frequency limit is 10x the concurrent execution limit, so for the default concurrent execution limit of 1000, the invocation frequency limit is 10000/second

So the concurrent execution limit is NOT the total number of executions at a given time, but the accumulated executions inside one given second, am I right?

answered 3 years ago
0

Hi,

  1. 1.000 concurrent executions are applied per-region and are shared across all Lambda functions in AWS account
  2. For synchronous invocations, each Lambda function can serve 10x "concurrent executions" per second. Please note that the "concurrent executions" is still shared across all functions.

If you have a single Lambda function with invocations duration of 100ms, then you can have up to 1 invocations per 100ms, this means that in 1 second you will have 10 x 1.000 = 10.000 invocations.

Regarding the asynchronous invocations, the invocation frequency is unlimited. However, you may still experience throttles, as explained in more details here [1]. AWS Lambda will handle the failures and it will retry the invocations and you have the option to configure the retry pattern of the failed invocations.

[1] Asynchronous Invocation - https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html

AWS
answered 3 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions