מכסות של פעולות בו-זמניות ב-Compute Engine

במאמר הזה מוסבר על מכסות של פעולות מקבילות ב-Compute Engine.

מכסות של פעולות בו-זמניות

מכסות של פעולות בו-זמניות מגדירות את מספר הפעולות שמתבצעות או בו-זמניות שיכולות להתרחש בכל נקודת זמן. כל בקשה ל-API שיוצרת, משנה או מוחקת משאב של Compute Engine כפופה לבדיקה של מגבלת פעולות בו-זמניות, כדי לוודא שהמספר הכולל של פעולות שמתבצעות בכל נקודת זמן לא חורג מהמגבלה שצוינה לאותה פעולה.

שגיאה שקשורה לחריגה ממגבלת הפעולות בו-זמנית

אם בפרויקט חורגים מהמגבלה של פעולות בו-זמניות עבור פעולה כלשהי שנמצאת בתהליך, מוצגת השגיאה 403 עם הסיבה rateLimitExceeded.

תגובת ה-API של השגיאה אמורה להיראות כך:

    "error": {
      "code": 403,
      "message": "Rate Limit Exceeded",
      "errors": [
        {
          "message": "Rate Limit Exceeded",
          "domain": "usageLimits",
          "reason": "rateLimitExceeded",
        ...
        ...
        }
      ],
      "details": [
        {
          "@type": "type.googleapis.com/google.rpc.ErrorInfo",
          "reason": "CONCURRENT_OPERATIONS_QUOTA_EXCEEDED",
          "domain": "compute.googleapis.com",
          "metadata": {
            "containerType": "PROJECT",
            "containerId": "PROJECT_ID",
            "quotaMetric": "QUOTA_METRIC",
            "quotaLimit": "QUOTA_LIMIT",
            "operationType": "OPERATION_TYPE",
            "location": "global | REGION"
          }
        },
        {
          "@type": "type.googleapis.com/google.rpc.Help",
          "links": [
            {
              "description": "Concurrent operations quota documentation.",
              "url": "https://cloud.google.com/compute/operations-quota#concurrent_operation_limits"
            }
          ]
        },
      ...
      ... 

פרטי השגיאה מכילים את הערכים הבאים:

  • PROJECT_ID: מזהה הפרויקט שבו המכסה חורגת מהמגבלה.

  • QUOTA_METRIC: המדד של המכסה המקבילה שחורגת מהמגבלה. הערך יכול להיות אחד מהבאים:

    • compute.googleapis.com/global_concurrent_operations
    • compute.googleapis.com/regional_concurrent_operations
  • QUOTA_LIMIT: שם המגבלה של המכסה המקבילה. הערך יכול להיות אחד מהבאים:

    • GlobalConcurrentOperationsPerProject
    • GlobalConcurrentOperationsPerProjectOperationType
    • RegionalConcurrentOperationsPerProject
    • RegionalConcurrentOperationsPerProjectOperationType
  • OPERATION_TYPE: הפעולה הגלובלית או האזורית שחורגת מהמכסה. רשימת הפעולות מופיעה במאמר בנושא קבוצות של מכסות לפעולות בו-זמניות.

  • הערך location יכול להיות אחד מהבאים:

    • global: מציין שהייתה חריגה מהמגבלה של מכסת הפעולות הגלובלית
    • REGION: מציין את האזור שבו חרגתם ממכסת הפעולות

יומני השגיאות המפורטים מוחזרים רק דרך תגובת ה-API. שגיאה ב-Logs Explorer שדומה לזו:

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

התו METHOD_NAME בשגיאה מייצג את שיטת ה-API שהייתה חריגה ממגבלת הקצב. לדוגמה, v1.compute.instances.stop.

קבוצות של מכסות לפעולות בו-זמניות

בקטע הזה מתוארות ההגבלות על פעולות שונות ב-Compute Engine שמתבצעות או מתבצעות במקביל.

מכסות גלובליות של פעולות

פעולות גלובליות בו-זמניות צורכות מגבלה גלובלית שמוגדרת לסוגי פעולות לכל פרויקט. בטבלה הבאה מפורטות המכסות הגלובליות לפעולות בתהליך והמדדים התואמים.

אפשר לראות את המכסה של פעולות גלובליות באמצעות Google Cloud המסוף, Google Cloud CLI ו-Service Usage API. איך רואים את המכסות והמגבלות של פעולות מקבילות

שם המכסה
תיאור
שם המדד שיטות שצורכות את המכסה הזו
Concurrent global operations per project
מגביל את המספר הכולל של פעולות גלובליות בו-זמניות בפרויקט.

הצגת המכסה הזו במסוף Google Cloud

compute.googleapis.com/global_concurrent_operations

כל השיטות הגלובליות.

כתובת ה-URL של בקשת ה-HTTP מכילה global עבור ה-methods האלה. לדוגמה, השיטה networks.insert:
POST /compute/v1/projects/{project}/global/networks

Concurrent global operations per project operation type
מגביל את מספר הפעולות בו-זמנית לכל פרויקט לכל סוג פעולה.

הצגת המכסה הזו במסוף Google Cloud

compute.googleapis.com/global_concurrent_operations

כל השיטות הגלובליות.

מכסת ברירת המחדל של פעולות בו-זמניות היא 500 פעולות בתהליך לכל פרויקט, למעט השיטות הבאות, שיש להן מגבלות שונות כברירת מחדל:

globaladdresses.move

firewalls.delete

firewalls.insert

images.delete

images.deprecate

images.insert

images.patch

images.setLabels

images.setIamPolicy

licenses.insert

machineimages.delete

machineimages.insert

networks.addPeering

networks.removePeering

networks.updatePeering

projects.setCommonInstaneMetadata

publicAdvertisedPrefixes.delete

publicAdvertisedPrefixes.insert

routes.delete

routes.insert

securityPolicies.patchRule

snapshots.delete

snapshots.insert

snapshots.setLabels

snapshots.setIamPolicy

snapshotSettings.patch

מכסות אזוריות של פעולות

פעולות אזוריות בו-זמניות צורכות מכסה אזורית שמוגדרת לסוגי פעולות לכל פרויקט באזור נתון.

בטבלה הבאה מפורטות המכסות האזוריות לפעולות בתהליך והמדדים התואמים.

אפשר לראות את המכסה לפעולות אזוריות באמצעות Google Cloud המסוף, Google Cloud CLI ו-Service Usage API. איך רואים את המכסות והמגבלות של פעולות מקבילות

שם המכסה
תיאור
שם המדד שיטות שצורכות את המכסה הזו
Concurrent regional operations per project
מגביל את המספר הכולל של פעולות אזוריות בו-זמניות בפרויקט.

הצגת המכסה הזו במסוף Google Cloud

compute.googleapis.com/regional_concurrent_operations

כל השיטות האזוריות.

כתובת ה-URL של בקשת ה-HTTP מכילה regions או zones עבור השיטות האלה.
לדוגמה, השיטה instances.insert:
POST /compute/v1/projects/{project}/zones/{zone}/instances

Concurrent regional operations per project operation type
מגביל את מספר הפעולות האזוריות בו-זמנית לכל פרויקט לכל סוג פעולה.

הצגת המכסה הזו במסוף Google Cloud

compute.googleapis.com/regional_concurrent_operations

כל השיטות האזוריות.

מכסת ברירת המחדל של פעולות מקבילות היא 500 פעולות בתהליך לכל פרויקט לכל אזור, למעט השיטות הבאות, שיש להן מגבלות שונות כברירת מחדל:

addresses.move

disks.insert

instances.delete

instances.insert

instances.simulateMaintenanceEvent

networkEndpointGroups.attachNetworkEndpoints

networkEndpointGroups.detachNetworkEndpoints

publicDelegatedPrefixes.delete

publicDelegatedPrefixes.insert

צפייה במכסות ובמגבלות של פעולות בו-זמניות

כדי לראות את מכסות השימוש והמגבלות בפרויקט:

המסוף

  1. נכנסים לדף Quotas במסוף Google Cloud .

    לפתיחת הדף Quotas

    בדף Quotas מפורטות כל המגבלות ומכסות השימוש בפרויקט שלכם. כברירת מחדל, הרשימה ממוינת לפי תדירות השימוש במכסות. המכסות שאתם הכי משתמשים בהן מוצגות קודם, כדי שתוכלו לראות מה המגבלות ולא לחרוג מהן.

  2. כדי לסנן את הרשימה ולראות את השימוש ואת המגבלה של מכסה ספציפית, בוחרים באפשרות Quota או Metric בשדה Filter.

    לדוגמה, בוחרים במכסה Concurrent global operations per project operation type כדי לראות את השימוש במכסה של שיטות גלובליות לפי סוג פעולה.

    כדי לסנן את המכסה לפעולה ספציפית, מוסיפים מאפיינים לשאילתת הסינון ובוחרים באפשרות operation_type. לדוגמה, בוחרים באפשרות firewalls_insert כדי לראות את השימוש במכסה ואת המגבלה של פעולת firewalls.insert.

gcloud

אפשר להשתמש ב-Google Cloud CLI כדי לראות את השימוש במכסות של פעולות מקבילות ואת המגבלות שלהן.

כדי להשתמש בגישה הזו, צריך לוודא שהתקנתם את הרכיב פקודות אלפא. אם אתם משתמשים ב-Cloud Shell לאינטראקציה עם Google Cloud, כבר מותקן אצלכם Google Cloud CLI.

כדי לראות את המכסה, משתמשים בפקודה הבאה:

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

מחליפים את PROJECT_ID במזהה הפרויקט שאת המכסה שלו רוצים לראות.

שיטות מומלצות

רשימת המשימות הבאה מסכמת את השיטות המומלצות לצמצום השגיאות שקשורות למגבלת הפעולות המקבילות:

המאמרים הבאים