Managed Service for Apache Spark has API quota limits that are enforced at the project and region level. The quotas reset every sixty seconds (one-minute).
The following table lists the specific and default per-project Managed Service for Apache Spark API quota types, quota limits, and the methods to which they apply.
| Quota Type | Limit | API Methods or Description |
|---|---|---|
| ClusterOperationRequestsPerMinutePerProjectPerRegion | 200 | CancelOperation (cancelling batch operation quota is shared with cancelling cluster operation quota). |
| BatchOperationRequestsPerMinutePerProjectPerRegion | 200 | CreateBatch, DeleteBatch |
| SessionOperationRequestsPerMinutePerProjectPerRegion | 200 | CreateSession, DeleteSession, TerminateSession |
| DefaultRequestsPerMinutePerProjectPerRegion | 7500 | GetBatch, ListBatches, GetSession, ListSessions |
| ActiveOperationsPerProjectPerRegion | 5000 | Limit on the total number of concurrent active operations of all types in a project in a region. |
Other Google Cloud quotas
Managed Service for Apache Spark batches utilize other Google Cloud products. These products have project-level quotas, which include quotas that apply to Managed Service for Apache Spark use. Some services are required to use Managed Service for Apache Spark, such as Compute Engine and Cloud Storage. Other services, such as BigQuery and Bigtable, can optionally be used with Managed Service for Apache Spark.
Required services
The following services, which enforce quota limits, are required to create Managed Service for Apache Spark batches.
Compute Engine
Managed Service for Apache Spark batches consume the following Compute Engine resource quotas:
| Compute Tier | Quota |
|---|---|
| Standard | CPUS |
| Premium | N2_CPUS |
| Disk Tier | Quota |
| Standard | DISKS_TOTAL_GB |
| Premium | LOCAL_SSD_TOTAL_GB_PER_VM_FAMILY with N2 VM Family |
GPU accelerator | Quota |
| L4 | NVIDIA_L4_GPUS |
| A100 40GB | NVIDIA_A100_GPUS |
| A100 80GB | NVIDIA_A100_80GB_GPUS |
The Compute Engine quotas
are split into regional and global limits. These limits apply to batches you
create. For example, to run a Spark batch with 4 driver cores
(spark.driver.cores=4) and two executors with 4 cores each (spark.executor.cores=4),
you will use 12 virtual CPUs (4 * 3).
This batch usage will count against the regional quota limit of 24 virtual CPUs.
Default batch resources
When you create a batch with default settings, the following Compute Engine resources are used:
| Item | Resources used |
|---|---|
| Virtual CPUs | 12 |
| Virtual Machine (VM) Instances | 3 |
| Persistent disk | 1200 GiB |
Cloud Logging
Managed Service for Apache Spark saves batch output and logs in Cloud Logging. The Cloud Logging quota applies to your Managed Service for Apache Spark batches.
Optional services
The following services, which have quota limits, can optionally be used with Managed Service for Apache Spark batches.
BigQuery
When reading or writing data into BigQuery, the BigQuery quota applies.
Bigtable
When reading or writing data into Bigtable, the Bigtable quota applies.
Identify workloads with quota or IP address limitations
You can use the following Cloud Logging queries to identify Managed Service for Apache Spark workloads that reached your quota or were unable to scale due to IP address exhaustion.
Quota query:
jsonPayload.@type="type.googleapis.com/google.cloud.dataproc.logging.AutoscalerLog"
jsonPayload.recommendation.outputs.constraintsReached="SCALING_CAPPED_DUE_TO_LACK_OF_QUOTA"
IP address exhaustion query:
jsonPayload.@type="type.googleapis.com/google.cloud.dataproc.logging.AutoscalerLog"
jsonPayload.status.details =~".*Insufficient free IP addresses.*"