Cuotas y límites de Pub/Sub

Google Cloud usa cuotas para limitar hasta qué punto se puede usar un determinado recurso compartido. Google Cloud Cada cuota representa un recurso contabilizable específico, como las llamadas a una API enviadas a un servicio concreto, el número de bytes enviados a un servicio concreto o el número de conexiones de streaming que usa tu proyecto de forma simultánea.

Muchos servicios también tienen límites que no están relacionados con el sistema de cuotas. Se trata de restricciones fijas, como el tamaño máximo de los mensajes o el número de recursos de Pub/Sub que puedes crear en un proyecto, que no se pueden aumentar ni reducir.

Ver y gestionar cuotas

En un proyecto determinado, puedes usar el panel de cuotas de gestión de identidades y accesos (IAM) y administración para ver los límites y el uso de las cuotas actuales. También puedes usar este panel de control para hacer lo siguiente:

  • Reducir los límites de cuota
  • Iniciar un proceso para solicitar límites de cuotas más altos

Para obtener más información sobre cómo monitorizar el uso de las cuotas y configurar alertas, consulta la página Monitorización.

Atribución de uso de cuota

En el caso del rendimiento del suscriptor de inserción, el uso de la cuota se factura en el proyecto con este tipo de suscripción. Este es el proyecto que aparece en el nombre de la suscripción.

En el caso de las demás cuotas, el uso se factura en el proyecto asociado a las credenciales especificadas en la solicitud. El uso de la cuota no se factura en el proyecto que contiene el recurso solicitado.

Por ejemplo, si una cuenta de servicio del proyecto A envía una solicitud de publicación para publicar un tema en el proyecto B, la cuota se factura en el proyecto A. En algunos casos, puede que quieras que el uso de la cuota se facture a otro proyecto. Puedes usar el parámetro de sistema X-Goog-User-Project para cambiar el proyecto al que se atribuye la cuota. Para obtener más información sobre X-Goog-User-Project, consulta Parámetros del sistema.

Puedes usar la CLI de gcloud para definir el proyecto de atribución de cuota de una solicitud específica. La CLI de gcloud envía el encabezado de solicitud X-Goog-User-Project.

Debes tener el rol roles/serviceusage.serviceUsageConsumer o un rol personalizado con el permiso serviceusage.services.use en el proyecto que vayas a usar para la atribución de cuota.

En el siguiente ejemplo se muestra cómo obtener una lista de suscripciones del proyecto RESOURCE_PROJECT mientras se cobra la cuota de operaciones de administrador al proyecto QUOTA_PROJECT. Ejecuta el siguiente comando en el terminal de la CLI de Google Cloud:

gcloud pubsub subscriptions list --project=
RESOURCE_PROJECT --billing-project=
QUOTA_PROJECT

Sustituye QUOTA_PROJECT por el ID del Google Cloud proyecto al que quieras asignar cuota.

Ten en cuenta que, en Pub/Sub, el proyecto facturado siempre es el que contiene el recurso. Solo puedes cambiar el proyecto para la atribución de cuota.

Cuotas de Pub/Sub

Las cuotas que se detallan en la siguiente tabla se pueden ver y editar según el proyecto en el panel de control de cuotas de APIs y servicios.

Hay tres tipos de cuotas regionales:

  • Cuotas para regiones grandes: europe-west1, europe-west4, us-central1, us-east1, us-east4, us-west1 y us-west2
  • Cuotas para regiones medianas: asia-east1, asia-northeast1, asia-southeast1, europe-west2 y europe-west3
  • Cuotas para regiones pequeñas: todas las demás

Las cuotas de entrega exactamente una vez son específicas de cada región. Consulta los detalles de cada región en la siguiente tabla.

Cuota Límite de cuota predeterminado Descripción
Rendimiento del editor por región
  • 240.000.000 kB por minuto (4 GB/s) en las regiones grandes
  • 48.000.000 kB por minuto (800 MB/s) en las regiones medianas
  • 12.000.000 kB por minuto (200 MB/s) en las regiones pequeñas

pubsub.googleapis.com/regionalpublisher

El uso de la cuota se basa en el tamaño de los PubsubMessages publicados:

Es posible incluir varios mensajes en una única solicitud de publicación sin que se produzcan más cargos por ellos. El tamaño del mensaje, calculado a efectos del uso de la cuota, también incluye el campo message_id generado automáticamente.

Rendimiento del suscriptor de extracción por región
  • 240.000.000 kB por minuto (4 GB/s) en las regiones grandes
  • 48.000.000 kB por minuto (800 MB/s) en las regiones medianas
  • 24.000.000 kB por minuto (400 MB/s) en las regiones pequeñas

pubsub.googleapis.com/regionalsubscriber

El uso de la cuota se basa en el tamaño de los PubsubMessages devueltos:

El tamaño del mensaje, calculado a efectos del uso de la cuota, también incluye el campo message_id generado automáticamente.

Rendimiento del confirmador por región
  • 240.000.000 kB por minuto (4 GB/s) en las regiones grandes
  • 48.000.000 kB por minuto (800 MB/s) en las regiones medianas
  • 24.000.000 kB por minuto (400 MB/s) en las regiones pequeñas

pubsub.googleapis.com/regionalacknowledger

El uso de la cuota se basa en el tamaño de las solicitudes Acknowledge y ModifyAckDeadline:

Rendimiento de las suscripciones de inserción por región
  • 26.400.000 kB por minuto (440 MB/s) en las regiones grandes
  • 8.400.000 kB por minuto (140 MB/s) en las regiones medianas
  • 2.400.000 kB por minuto (40 MB/s) en las regiones pequeñas

pubsub.googleapis.com/regionalpushsubscriber

En el caso de las solicitudes de publicación de inserción que se realizan al punto de conexión de inserción, el uso de la cuota se basa en el tamaño de los PubsubMessages enviados a dicho punto de conexión.

Rendimiento de las suscripciones a BigQuery por región
  • 240.000.000 kB por minuto (4 GB/s) en las regiones grandes
  • 48.000.000 kB por minuto (800 MB/s) en las regiones medianas
  • 12.000.000 kB por minuto (200 MB/s) en las regiones pequeñas

pubsub.googleapis.com/regionalpushbigquerysubscriber

En el caso de las solicitudes realizadas a BigQuery, el uso de la cuota se basa en el tamaño de los PubsubMessages enviados a BigQuery.

Rendimiento de las suscripciones a Cloud Storage por región
  • 240.000.000 kB por minuto (4 GB/s) en las regiones grandes
  • 48.000.000 kB por minuto (800 MB/s) en las regiones medianas
  • 12.000.000 kB por minuto (200 MB/s) en las regiones pequeñas

pubsub.googleapis.com/regionalpushcloudstoragesubscriber

En el caso de las solicitudes que se hacen a Cloud Storage, el uso de la cuota se basa en el tamaño de los PubsubMessages enviados a Cloud Storage.

Rendimiento del suscriptor de StreamingPull por región
  • 240.000.000 kB por minuto (4 GB/s) en las regiones grandes
  • 48.000.000 kB por minuto (800 MB/s) en las regiones medianas
  • 24.000.000 kB por minuto (400 MB/s) en las regiones pequeñas

pubsub.googleapis.com/regionalstreamingpullsubscriber

El uso de la cuota se basa en el tamaño de los PubsubMessages transmitidos al suscriptor:

Las bibliotecas de cliente usan las operaciones StreamingPull siempre que sea posible.

Número de conexiones StreamingPull abiertas por región
  • 72.000 conexiones abiertas a la vez en las regiones grandes
  • 48.000 conexiones abiertas a la vez en las regiones medianas
  • 24.000 conexiones abiertas a la vez en las regiones pequeñas

pubsub.googleapis.com/regionalstreamingpullconnections

El número de conexiones StreamingPull abiertas en un momento determinado. Consulta StreamingPull.

Operaciones de administrador 6000 por minuto (100 operaciones/s)

pubsub.googleapis.com/administrator

Cada operación de administrador, como GetTopicRequest, factura una unidad en esta cuota.

Get*, List*, Create*, Delete*, Update*, ModifyPushConfig, SetIamPolicy, GetIamPolicy, TestIamPermissions, ValidateSchema, ValidateMessage, CommitSchema, RollbackSchema, DeleteSchemaRevision, ListSchemaRevisions y DetachSubscription son operaciones de administrador.

Número de mensajes consumidos de suscripciones con la opción entrega de una sola vez habilitada por región.
  • 1.000.000 de mensajes por minuto en us-central1
  • 700.000 mensajes por minuto en us-east1
  • 300.000 mensajes por minuto en us-west1
  • 180.000 mensajes por minuto en otras regiones

pubsub.googleapis.com/exactlyoncedeliveredmessagecount

El uso de la cuota se basa en el número de PubsubMessages que consume el suscriptor:

Número de mensajes confirmados o cuyo plazo se ha ampliado cuando se usan suscripciones con la opción Entrega exactamente una vez habilitada por región
  • 10.000.000 de mensajes por minuto en us-central1
  • 7.000.000 de mensajes por minuto en us-east1
  • 3.000.000 de mensajes por minuto en us-west1
  • 1.800.000 mensajes por minuto en otras regiones

pubsub.googleapis.com/exactlyonceackcount

El uso de la cuota se basa en el número de IDs de confirmación de las solicitudes Acknowledge y ModifyAckDeadline:

Unidades de cuota de rendimiento

El uso de la cuota de rendimiento se mide en unidades de 1 kB. 1 kB equivale a 1000 bytes. Por ejemplo, en una PublishRequest con 105 mensajes de 50 bytes cada uno, el tamaño de los datos de usuario es de 105 * 50 bytes = 5250 bytes, por lo que el uso de la cuota es de max(1kB, ceil(5250 bytes/1000)) = 6kB.

Límites de recursos

Recurso Límites
Proyecto 10.000 temas
10.000 suscripciones vinculadas o sin vincular
5000 capturas
10.000 esquemas
Tema 10.000 suscripciones vinculadas
5000 capturas vinculadas
Si se configura la retención de mensajes de temas, los mensajes publicados en un tema se pueden retener en el almacenamiento persistente durante un máximo de 31 días desde el momento de la publicación.
Suscripción De forma predeterminada, retiene los mensajes no confirmados en el almacenamiento persistente durante 7 días a partir del momento de la publicación. No hay límite en el número de mensajes que se pueden retener.
Si los suscriptores no utilizan su suscripción, esta caduca. El periodo de caducidad predeterminado es de 31 días.
Esquema Tamaño del esquema (campo definition): 300 kB
Revisiones por esquema: 20
Solicitud de publicación 10 MB (tamaño total)
1000 mensajes
Mensaje Tamaño del mensaje (el campo data): 10 MB
Atributos por mensaje: 100
Tamaño de clave de atributo: 256 bytes
Tamaño de valor de atributo: 1024 bytes
Transmisiones de StreamingPull 10 MBps por transmisión abierta
Respuesta de extracción unaria Número máximo de mensajes en la respuesta de extracción: 1000
Tamaño máximo de la respuesta de extracción: 10 MB
Mensajes Pull/StreamingPull El servicio puede imponer límites al número total de mensajes StreamingPull pendientes por conexión. Si llegas a estos límites, incrementa la frecuencia con la que confirmas los mensajes y el número de conexiones que usas.
Solicitudes Acknowledge y ModifyAckDeadline 512 KB (tamaño total)
Claves de ordenación Si los mensajes tienen claves de ordenación, el rendimiento máximo del editor será de 1 MB/s por clave.
Objetos de un segmento de Cloud Storage Cuando se usan temas de importación de Cloud Storage, el límite del número de objetos de un segmento es de 50 millones.

Usar una cuenta de servicio para obtener cuotas más altas

Si se utiliza la herramienta de la CLI de Google Cloud con una cuenta de usuario normal (es decir, que no sea de servicio), las operaciones de Pub/Sub se limitan a una tasa adecuada para las operaciones manuales. Las tasas que superen este límite devolverán el error RESOURCE_EXHAUSTED. Para solucionarlo, comprueba que estás usando las credenciales de la cuenta de servicio. Si quieres usar las credenciales de la CLI de gcloud para la automatización, activa una cuenta de servicio para tus operaciones de Pub/Sub.

Usar endpoints de ubicación para enrutar solicitudes

Si tienes una cuota mayor en determinadas regiones, puedes dirigir las solicitudes a esas regiones mediante puntos finales Pub/Sub regionales. Cuando publicas mensajes en un punto final mundial, el servicio Pub/Sub puede dirigir el tráfico a regiones que no tengan suficiente cuota.

Discrepancias en las cuotas

Pueden producirse discrepancias en las cuotas si los mensajes publicados o recibidos no superan los 1000 bytes. Por ejemplo:

  • Si publicas 10 mensajes de 500 bytes cada uno en solicitudes independientes, el uso de tu cuota de editor ascenderá a 10.000 bytes. Esto se debe a que los mensajes inferiores a 1000 bytes se redondean automáticamente al siguiente incremento de 1000 bytes.

  • Si recibes esos 10 mensajes en una sola respuesta de extracción, el uso de tu cuota de suscriptor podría ser de solo 5 kB, ya que el tamaño real de cada mensaje se combina para determinar la cuota total.

  • También funciona a la inversa. El uso de la cuota de suscriptor puede ser mayor que el uso de la cuota de editor si publicas varios mensajes en una única solicitud de publicación o si recibes los mensajes en solicitudes de extracción independientes.