Limits in AWS Device Farm
The following list describes current AWS Device Farm limits:
-
The maximum file size of an app that you can upload is 4 GB.
-
There is no limit to the number of devices that you can include in a test run. However, the maximum number of devices that Device Farm will test simultaneously during a test run is five. (This number can be increased upon request.)
-
There is no limit to the number of runs that you can schedule.
-
There is a 150-minute limit to the duration of a remote access session.
-
There is a 150-minute limit to the duration of an automated test run.
-
The maximum number of in-flight jobs, including pending queued jobs across your account, is 250. This is a soft limit.
-
There's no limit to the number of devices you can include in a test run. The number of devices (jobs) that can execute your tests in parallel at any given time is equal to your account-level concurrency. The default account-level concurrency for metered use in Device Farm is five.
The metered concurrency limit can be increased upon request up to a certain threshold depending on the use case. The default account-level concurrency for unmetered use is equal to the number of slots you are subscribed to for that platform.
For more information concerning the default metered concurrency limits or quotas in general, see the Quotas page.
-
Device Farm follows a token-bucket algorithm to throttle API call rates. For example, imagine creating a bucket that holds tokens. Each token represents one transaction, and one API call uses up a token. Tokens are added to the bucket at a fixed rate (e.g., 10 tokens per second), and the bucket has a maximum capacity (e.g., 100 tokens). When a request or packet arrives, it must claim a token from the bucket to be processed. If there are enough tokens, the request is allowed through and tokens are removed. If there aren't enough tokens, the request is either delayed or dropped, depending on the implementation.
In Device Farm, this is how the algorithm is implemented:
-
The Burst API requests is the maximum number of requests the service is able to respond to for a specified API in a specified customer account ID. In other words, this is the capacity of the bucket. You can call the API as many times as there are tokens remaining in the bucket, and each request consumes one token.
-
The Transactions-per-second (TPS) rate is the minimum rate at which your API requests can be executed. In other words, this is the rate at which the bucket refills with tokens per second. For example, if an API has a burst number of ten but a TPS of one, you could call it ten times instantly. However, the bucket would only regain tokens at a rate of one token per second, resulting in being throttled to one call per second unless you stopped calling the API to let the bucket refill.
Here are the rates for Device Farm APIs:
-
-
For List and Get APIs, the Burst API requests capacity is
50
, and the Transactions-per-second (TPS) rate is10
. -
For all other APIs, the Burst API requests capacity is
10
, and the Transactions-per-second (TPS) rate is1
.