Soluciona problemas relacionados con la cuota de operaciones simultáneas de Compute Engine


En este documento, se describe cómo solucionar problemas relacionados con los límites de operaciones simultáneas en Compute Engine que se producen por errores de rateLimitExceeded.

Para ayudar a identificar la causa de un error rateLimitExceeded, sigue estos pasos para solucionar problemas:

  1. En la consola de Google Cloud, ve a la página Explorador de registros.

    Ir al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. Para filtrar los registros de errores que genera la API de Compute Engine, ingresa la siguiente consulta de registro en el editor de consultas.

    log_id("cloudaudit.googleapis.com/activity")
    protoPayload.serviceName="compute.googleapis.com"
    protoPayload.response.error.code=403
    protoPayload.status.message="Rate Limit Exceeded"
    

    Los registros de errores filtrados deberían ser similares a los siguientes:

    "protoPayload":{
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "message": "Rate Limit Exceeded"
    }
    "serviceName": "compute.googleapis.com",
    "methodName": "METHOD_NAME",
    ...
    ...
    "response": {
      "error": {
        "message": "Rate Limit Exceeded",
        "code": 403,
        "errors": [
          {
            "message": "Rate Limit Exceeded",
            "reason": "rateLimitExceeded",
            "domain": "usageLimits"
          }
        ]
      },
      "@type": "type.googleapis.com/error"
    },
    "resourceLocation": {
      "currentLocations": [
        "LOCATION"
      ]
    },
    ...
    ... 

    Los detalles del error contienen los siguientes valores:

    • METHOD_NAME: Es el nombre de la operación o el método del servicio. En el caso de las llamadas a la API, este nombre debe ser el nombre del método de la API.

    • LOCATION: Es la ubicación del recurso. Puede ser una región, una zona o global. Por ejemplo, las entradas currentLocations: "us-central1"(regional) o currentLocations: "us-central1-a" indican que la región es "us-central1" o currentLocations: "global".

  3. Identifica el valor methodName asociado en el registro de errores. Este nombre representa el método de la API para el que se superó el límite de frecuencia, por ejemplo: v1.compute.instances.stop.

  4. Identifica la ubicación relevante en los registros de auditoría.

  5. Consulta las cuotas y los límites de Concurrent operations per project.

    Console

    1. En la consola de Google Cloud, ve a la página Cuotas.

      Ir a Cuotas

      En la página Cuotas, se muestra una lista de los usos y límites de la cuota de tu proyecto. De forma predeterminada, la lista se ordena para mostrar primero las cuotas más usadas, lo que te ayuda a ver los límites que están en riesgo de excederse.

    2. Para filtrar la lista y ver el uso y el límite de una cuota específica, selecciona Cuota o Métrica en el campo Filtro.

      Por ejemplo, selecciona la cuota por el nombre Concurrent global operations per project operation type o selecciona Service: Compute Engine API, type: System Limit y una palabra clave concurrent para enumerar todas las cuotas de operaciones simultáneas. El filtrado proporciona una lista de cuotas simultáneas. En esta lista, puedes buscar la cuota afectada. Para filtrar la cuota de una operación específica, agrega Dimensiones a la consulta de filtro y selecciona el tipo de operación (que se muestra como methodName en los registros de auditoría).

      Por ejemplo, selecciona instances_stop para ver el uso y el límite de la cuota de la operación instances.stop.

      Para filtrar la cuota de una región específica, agrega Dimensiones a la consulta de filtro y selecciona la región (que se muestra como currentLocations en los registros de auditoría).

      Por ejemplo, selecciona us-central1 para ver el uso y el límite de la cuota de la región us-central1.

      Los filtros region y operation_type se pueden usar juntos para ver el uso y el límite de la cuota de una operación específica en una región específica.

    gcloud

    Puedes usar Google Cloud CLI para ver el uso y el límite de las cuotas de operaciones simultáneas.

    Para usar este enfoque, asegúrate de haber instalado el componente de los comandos alfa. Si usas Cloud Shell para interactuar con Google Cloud, se instala Google Cloud CLI de manera automática.

    Para ver una cuota de operación, usa el siguiente comando:

    gcloud alpha services quota list \
      --service=compute.googleapis.com \
      --consumer=projects/PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto para el que deseas ver la cuota.

    Por lo general, estas cuotas se agrupan en dos categorías:

    • Global o regional
    • Por proyecto o por proyecto y por tipo de operación

    Para obtener más información, consulta Grupos de cuotas de operaciones simultáneas.

  6. Consulta el gráfico de uso de la cuota. Si el uso está cerca o supera el límite de cuota durante el período de los registros de errores, significa que se superó la cuota o el límite del sistema.

    Para ver gráficos que muestran el uso actual y máximo, ve a la cuota y, luego, haz clic en Supervisión. Es posible que debas desplazarte hacia la derecha hasta el final de la tabla.

    El gráfico de supervisión confirmará la causa del error rateLimitExceeded, con la cuota o el límite específicos. Si los valores actuales superan los valores límite, significa que se superó el límite del sistema. Dado que los límites del sistema no se pueden modificar, te recomendamos que sigas las siguientes prácticas recomendadas para reducir la cantidad de operaciones simultáneas.

    Estas son algunas de las prácticas recomendadas: