Memecahkan masalah kuota operasi serentak Compute Engine


Dokumen ini menjelaskan cara memecahkan masalah batas operasi serentak di Compute Engine yang disebabkan oleh error rateLimitExceeded.

Untuk membantu mengidentifikasi penyebab error rateLimitExceeded, gunakan langkah-langkah pemecahan masalah berikut:

  1. Di konsol Google Cloud, buka halaman Logs Explorer:

    Buka Logs Explorer

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  2. Untuk memfilter log error yang dihasilkan oleh Compute Engine API, masukkan kueri logging berikut di editor kueri.

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

    Log error yang difilter akan terlihat seperti berikut:

    "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"
      ]
    },
    ...
    ... 

    Detail error berisi nilai berikut:

    • METHOD_NAME: Nama operasi atau metode layanan. Untuk panggilan API, nama ini harus berupa nama metode API.

    • LOCATION: Lokasi resource. Ini dapat berupa region, zona, atau global. Misalnya, entri currentLocations: "us-central1"(Regional) atau currentLocations: "us-central1-a" menunjukkan bahwa regionnya adalah "us-central1" atau currentLocations: "global".

  3. Identifikasi nilai methodName terkait dari log error. Nama ini mewakili metode API yang batas kapasitasnya terlampaui, misalnya: v1.compute.instances.stop.

  4. Identifikasi lokasi yang relevan dalam log audit.

  5. Periksa kuota dan batas Concurrent operations per project.

    Konsol

    1. Di Konsol Google Cloud, buka halaman Quotas.

      Buka Kuota

      Halaman Kuota mencantumkan penggunaan dan batas kuota untuk project Anda. Secara default, daftar ini diurutkan untuk menampilkan kuota yang paling banyak digunakan terlebih dahulu, yang membantu Anda melihat batas yang berisiko terlampaui.

    2. Untuk memfilter daftar dan melihat penggunaan serta batas untuk kuota tertentu, pilih Kuota atau Metrik di kolom Filter.

      Misalnya, pilih Kuota berdasarkan nama Concurrent global operations per project operation type atau pilih Service: Compute Engine API, type: System Limit, dan kata kunci concurrent untuk mencantumkan semua kuota operasi serentak. Pemfilteran memberikan daftar kuota serentak. Dari daftar ini, Anda dapat menelusuri kuota yang terpengaruh. Untuk memfilter kuota untuk operasi tertentu, tambahkan Dimensi ke kueri filter dan pilih operation_type (ditampilkan sebagai methodName dalam log audit).

      Misalnya, pilih instances_stop untuk melihat penggunaan dan batas kuota untuk operasi instances.stop.

      Untuk memfilter kuota untuk wilayah tertentu, tambahkan Dimensi ke kueri filter dan pilih region (ditampilkan sebagai currentLocations dalam log audit).

      Misalnya, pilih us-central1 untuk melihat batas dan penggunaan kuota untuk region us-central1.

      Filter region dan operation_type dapat digunakan bersama untuk melihat penggunaan dan batas kuota untuk operasi tertentu di wilayah tertentu.

    gcloud

    Anda dapat menggunakan Google Cloud CLI untuk melihat penggunaan dan batas kuota operasi serentak.

    Untuk menggunakan pendekatan ini, pastikan Anda telah menginstal komponen perintah alfa. Jika Anda menggunakan Cloud Shell untuk berinteraksi dengan Google Cloud, Google Cloud CLI akan diinstal untuk Anda.

    Untuk melihat kuota operasi, gunakan perintah berikut:

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

    Ganti PROJECT_ID dengan ID project yang kuotanya ingin Anda lihat.

    Kuota ini umumnya dikelompokkan ke dalam dua kategori:

    • Global atau regional
    • Per project atau per project per jenis operasi

    Untuk mengetahui informasi selengkapnya, lihat Grup kuota operasi serentak.

  6. Periksa diagram penggunaan untuk kuota. Jika penggunaan mendekati atau melebihi batas kuota selama periode log error, berarti kuota atau batas sistem terlampaui.

    Untuk melihat diagram yang menunjukkan penggunaan saat ini dan puncak, buka kuota, lalu klik Monitoring. Anda mungkin perlu men-scroll ke kanan hingga akhir tabel.

    Grafik pemantauan akan mengonfirmasi penyebab error rateLimitExceeded, dengan kuota/batas tertentu. Jika nilai saat ini berada di atas nilai batas, berarti batas sistem terlampaui. Karena batas sistem tidak dapat diubah, sebaiknya lakukan praktik terbaik berikut untuk mengurangi jumlah operasi serentak.

    Beberapa praktik terbaik adalah sebagai berikut: