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

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

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

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות להגדרה ולפריסה של שירותי Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

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

רשימה של תפקידים והרשאות ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם שירות Cloud Run שלכם מתממשק עם ממשקי API שלGoogle Cloud , כמו ספריות הלקוח ב-Cloud, עיינו במדריך להגדרת זהות השירות. מידע נוסף על הקצאת תפקידים זמין במאמרים הרשאות פריסה וניהול הגישה.

הגדרת המספר המקסימלי של בקשות מקבילות לכל מכונה

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

בשירותי Cloud Run, אתם יכולים להגדיר את המספר המקסימלי של בקשות מקבילות לכל מכונה באמצעות מסוף Google Cloud , שורת הפקודה של gcloud או קובץ ‎ .yaml כשאתם יוצרים שירות חדש או פורסים גרסה חדשה:

המסוף

  1. נכנסים ל-Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. בתפריט הניווט של Cloud Run, לוחצים על Services:

    1. אם אתם מגדירים שירות חדש, לוחצים על Deploy container וממלאים את דף הגדרות השירות הראשוני. לאחר מכן לוחצים על Containers, Networking, Security כדי להרחיב את דף הגדרת השירות.

    2. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על הכרטיסייה Scaling.

  3. בקטע Requests, מציינים את המספר המקסימלי של מכונות קונטיינר בשדה Maximum concurrent requests per instance.

  4. כדי ליצור שירות חדש, לוחצים על יצירה. לוחצים על View diff & redeploy ואז על Deploy changes בשירות קיים.

gcloud

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

gcloud run services update SERVICE --concurrency CONCURRENCY

מחליפים את מה שכתוב בשדות הבאים:

  • ‫SERVICE: שם השירות.
  • ‫CONCURRENCY: המספר המקסימלי של בקשות מקבילות לכל מכונה. לדוגמה, הקוד הבא מגדיר מקסימום של בקשה אחת בו-זמנית:

    gcloud run services update SERVICE --concurrency 1

אם תשנו את המספר המקסימלי של בקשות מקבילות לכל מכונה של שירות מסוים, ההגדרה הזו תתועד בגרסה חדשה.

כדי לחזור למספר ברירת המחדל של בקשות מקבילות לכל מכונה (80), משתמשים בפקודה הבאה:

gcloud run services update SERVICE --concurrency default

מחליפים את SERVICE בשם של השירות שאתם מגדירים.

YAML

  1. אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, הורידו את הגדרת ה-YAML שלו:

    gcloud run services describe SERVICE --format export > service.yaml
  2. מעדכנים את המאפיין containerConcurrency:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containerConcurrency: CONCURRENCY

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SERVICE: השם של שירות Cloud Run
    • ‫IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, לדוגמה us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, המאגר REPO_NAME כבר צריך להיות קיים. הפורמט של כתובת ה-URL הוא LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.
    • ‫CONCURRENCY: המספר המקסימלי של בקשות מקבילות לכל מכונה.
    • ‫REVISION: שם גרסה חדש או מחיקה של השם (אם הוא קיים). אם אתם מספקים שם חדש לגרסה, הוא חייב לעמוד בקריטריונים הבאים:
      • מתחיל ב-SERVICE-
      • מכיל רק אותיות קטנות, מספרים ו--
      • לא מסתיים ב--
      • לא חורג מ-63 תווים
  3. יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:

    gcloud run services replace service.yaml

    כברירת מחדל, הפקודה gcloud run services replace משתמשת בקובץ service.yaml אם הוא קיים.

Terraform

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

מוסיפים את הקוד הבא למשאב google_cloud_run_v2_service בתצורה של Terraform:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-concurrency"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    # Maximum concurrent requests
    max_instance_request_concurrency = 80
  }
}

מחליפים את 80 במספר המקסימלי הרצוי של בקשות מקבילות.

הצגת הגדרות של פעולות בו-זמניות

כדי לראות את ההגדרות הנוכחיות של מספר הבקשות בו-זמנית בשירות Cloud Run:

המסוף

  1. נכנסים לדף Services של Cloud Run במסוף Google Cloud :

    כניסה ל-Cloud Run

  2. לוחצים על השירות הרצוי כדי לפתוח את הדף Service details.

  3. לוחצים על הכרטיסייה Scaling כדי לראות את ההגדרות.

gcloud

  1. משתמשים בפקודה הבאה:

    gcloud run services describe SERVICE
  2. מאתרים את הגדרת בו-זמניות בהגדרות שהוחזרו.