Managed Service para Apache Spark tiene límites de cuota de las API que se aplican a nivel de proyecto y región. Esas cuotas se restablecen cada sesenta segundos (un minuto).
En la siguiente tabla, se muestran los tipos de cuotas específicos y predeterminados por proyecto para las API de Managed Service para Apache Spark, los límites de cuotas y los métodos a los que se aplican.
| Tipo de cuota | Límite | Métodos o descripción de la API |
|---|---|---|
| ClusterOperationRequestsPerMinutePerProjectPerRegion | 200 | CancelOperation (la cuota de cancelación de la operación por lotes se comparte con la cuota de cancelación de la operación del clúster). |
| BatchOperationRequestsPerMinutePerProjectPerRegion | 200 | CreateBatch, DeleteBatch |
| SessionOperationRequestsPerMinutePerProjectPerRegion | 200 | CreateSession, DeleteSession, TerminateSession |
| DefaultRequestsPerMinutePerProjectPerRegion | 7,500 | GetBatch, ListBatches, GetSession, ListSessions |
| ActiveOperationsPerProjectPerRegion | 5000 | Límite de la cantidad total de operaciones activas simultáneas de todos los tipos en un proyecto en una región. |
Otras Google Cloud cuotas
Los lotes de Managed Service para Apache Spark utilizan otros Google Cloud productos. Estos productos tienen cuotas en el nivel de proyecto, que incluyen las que se aplican al uso de Managed Service para Apache Spark. Algunos servicios son obligatorios para usar Managed Service para Apache Spark, como Compute Engine y Cloud Storage. Otros servicios, como BigQuery y Bigtable, se pueden usar de forma opcional con Managed Service para Apache Spark.
Servicios obligatorios
Los siguientes servicios, que tienen límites de cuota, son obligatorios para crear lotes de Managed Service para Apache Spark.
Compute Engine
Los lotes de Managed Service para Apache Spark consumen las siguientes cuotas de recursos de Compute Engine:
| Nivel de procesamiento | Quota |
|---|---|
| Estándar | CPUS |
| Premium | N2_CPUS |
| Nivel de disco | Quota |
| Estándar | DISKS_TOTAL_GB |
| Premium | LOCAL_SSD_TOTAL_GB_PER_VM_FAMILY con la familia de VM N2 |
| Acelerador de GPU | Quota |
| L4 | NVIDIA_L4_GPUS |
| A100 40GB | NVIDIA_A100_GPUS |
| A100 80GB | NVIDIA_A100_80GB_GPUS |
Las cuotas de Compute Engine
están divididas en límites regionales y globales. Estos límites se aplican a los lotes que creas. Por ejemplo, para ejecutar un lote de Spark con 4 núcleos de controlador (spark.driver.cores=4) y dos ejecutores con 4 núcleos cada uno (spark.executor.cores=4), usarás 12 CPU virtuales (4 * 3). El uso de este lote se descuenta del límite de cuota regional de 24 CPU virtuales.
Recursos de lotes predeterminados
Cuando creas un lote con la configuración predeterminada, se usan los siguientes recursos de Compute Engine:
| Elemento | Recursos utilizados |
|---|---|
| CPU virtuales | 12 |
| Instancias de máquinas virtuales (VM) | 3 |
| Disco persistente | 1,200 GiB |
Cloud Logging
Managed Service para Apache Spark guarda el resultado y los registros de los lotes en Cloud Logging. La cuota de Cloud Logging se aplica a tus lotes de Managed Service para Apache Spark.
Servicios opcionales
Los siguientes servicios, que tienen límites de cuota, se pueden usar de forma opcional con los lotes de Managed Service para Apache Spark.
BigQuery
Cuando se realizan operaciones de lectura o escritura de datos en BigQuery, se aplica la cuota de BigQuery.
Bigtable
Cuando se realizan operaciones de lectura o escritura de datos en Bigtable, se aplica la cuota de Bigtable.
Identifica las cargas de trabajo con limitaciones de cuota o de dirección IP
Puedes usar las siguientes consultas de Cloud Logging para identificar las cargas de trabajo de Managed Service para Apache Spark que alcanzaron tu cuota o no pudieron escalarse debido al agotamiento de la dirección IP.
Consulta de cuota:
jsonPayload.@type="type.googleapis.com/google.cloud.dataproc.logging.AutoscalerLog"
jsonPayload.recommendation.outputs.constraintsReached="SCALING_CAPPED_DUE_TO_LACK_OF_QUOTA"
Consulta de agotamiento de la dirección IP:
jsonPayload.@type="type.googleapis.com/google.cloud.dataproc.logging.AutoscalerLog"
jsonPayload.status.details =~".*Insufficient free IP addresses.*"