במאמר הזה מוסבר על מכסות של פעולות מקבילות ב-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_operationscompute.googleapis.com/regional_concurrent_operations
QUOTA_LIMIT: שם המגבלה של המכסה המקבילה. הערך יכול להיות אחד מהבאים:GlobalConcurrentOperationsPerProjectGlobalConcurrentOperationsPerProjectOperationTypeRegionalConcurrentOperationsPerProjectRegionalConcurrentOperationsPerProjectOperationType
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מגביל את המספר הכולל של פעולות גלובליות בו-זמניות בפרויקט. |
|
כל השיטות הגלובליות. כתובת ה-URL של בקשת ה-HTTP מכילה |
Concurrent global operations per project operation typeמגביל את מספר הפעולות בו-זמנית לכל פרויקט לכל סוג פעולה. |
|
כל השיטות הגלובליות. מכסת ברירת המחדל של פעולות בו-זמניות היא
|
מכסות אזוריות של פעולות
פעולות אזוריות בו-זמניות צורכות מכסה אזורית שמוגדרת לסוגי פעולות לכל פרויקט באזור נתון.
בטבלה הבאה מפורטות המכסות האזוריות לפעולות בתהליך והמדדים התואמים.
אפשר לראות את המכסה לפעולות אזוריות באמצעות Google Cloud המסוף, Google Cloud CLI ו-Service Usage API. איך רואים את המכסות והמגבלות של פעולות מקבילות
| שם המכסה תיאור |
שם המדד | שיטות שצורכות את המכסה הזו |
|---|---|---|
Concurrent regional operations per project
מגביל את המספר הכולל של פעולות אזוריות בו-זמניות בפרויקט. |
|
כל השיטות האזוריות. כתובת ה-URL של בקשת ה-HTTP מכילה |
Concurrent regional operations per project operation type
מגביל את מספר הפעולות האזוריות בו-זמנית לכל פרויקט לכל סוג פעולה. |
|
כל השיטות האזוריות. מכסת ברירת המחדל של פעולות מקבילות היא
|
צפייה במכסות ובמגבלות של פעולות בו-זמניות
כדי לראות את מכסות השימוש והמגבלות בפרויקט:
המסוף
נכנסים לדף Quotas במסוף Google Cloud .
בדף Quotas מפורטות כל המגבלות ומכסות השימוש בפרויקט שלכם. כברירת מחדל, הרשימה ממוינת לפי תדירות השימוש במכסות. המכסות שאתם הכי משתמשים בהן מוצגות קודם, כדי שתוכלו לראות מה המגבלות ולא לחרוג מהן.
כדי לסנן את הרשימה ולראות את השימוש ואת המגבלה של מכסה ספציפית, בוחרים באפשרות 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 במזהה הפרויקט שאת המכסה שלו רוצים לראות.
שיטות מומלצות
רשימת המשימות הבאה מסכמת את השיטות המומלצות לצמצום השגיאות שקשורות למגבלת הפעולות המקבילות:
- המתנה לסיום הפעולות
- הסתמכות על קודי שגיאה, ולא על הודעות שגיאה
- צמצום הניסיונות החוזרים בצד הלקוח כדי לשמור על מגבלות קצב של API
המאמרים הבאים
- מידע נוסף על מכסות ב-Cloud