ב-Knative serving, כל revision מותאם אוטומטית למספר מופעי הקונטיינר שנדרשים כדי לטפל בכל הבקשות הנכנסות.
ככל שיותר מופעי קונטיינר מעבדים בקשות, כך נעשה שימוש ביותר משאבי מעבד (CPU) וזיכרון, וכתוצאה מכך העלויות גבוהות יותר. כשצריך להפעיל מופעים חדשים של מאגר תגים, יכול להיות שיידרש יותר זמן לעיבוד הבקשות, והביצועים של השירות ירדו.
כדי לתת לכם יותר שליטה, Knative serving מספק הגדרת מקבילות שמציינת את המספר המקסימלי של בקשות שיכולות לעבור עיבוד בו-זמנית על ידי מופע נתון של קונטיינר.
ערכי מקבילות
כברירת מחדל, מופעי קונטיינר של Knative Serving יכולים לקבל הרבה בקשות בו-זמנית (עד 80 בקשות). הערה: בהשוואה, לפתרונות של פונקציות כשירות (FaaS) כמו פונקציות Cloud Run יש מקביליות קבועה של 1.
מומלץ להשתמש בערך ברירת המחדל של בו-זמניות, אבל אם צריך אפשר להקטין את הבו-זמניות המקסימלית. לדוגמה,
אם הקוד לא יכול לעבד בקשות מקבילות,
מגדירים את מספר הבקשות המקבילות ל-1.
ערך הבו-זמניות שצוין הוא ערך מקסימלי, ויכול להיות ש-Knative Serving לא ישלח כל כך הרבה בקשות למופע נתון של קונטיינר אם כבר נעשה שימוש רב במעבד (CPU) של המופע.
בדיאגרמה הבאה אפשר לראות איך הגדרת המקבילות משפיעה על מספר המקרים של מאגרי תגים שנדרשים לטיפול בבקשות מקבילות נכנסות:
מתי כדאי להגביל את מספר הבקשות המקבילות לבקשה אחת בכל פעם
אפשר להגביל את מספר הבקשות שמועברות בו-זמנית כך שרק בקשה אחת בכל פעם תועבר לכל מופע קונטיינר פעיל. כדאי לעשות את זה במקרים הבאים:
- כל בקשה משתמשת ברוב המעבד (CPU) או הזיכרון שזמינים.
- קובץ אימג' של הקונטיינר לא מיועד לטיפול בכמה בקשות בו-זמנית. לדוגמה, אם הקונטיינר מסתמך על מצב גלובלי ששתי בקשות לא יכולות לשתף.
שימו לב: סביר להניח שערך בו-זמניות (concurrency) של 1 ישפיע לרעה על ביצועי ההרחבה, כי הרבה מופעים של קונטיינרים יצטרכו להתחיל לפעול כדי לטפל בעליית שיא במספר הבקשות הנכנסות.
מקרה לדוגמה
המדדים הבאים מציגים תרחיש לדוגמה שבו 400 לקוחות שולחים 3 בקשות בשנייה לשירות Knative serving שהוגדרה בו מקסימום מקביליות של 1. הקו הירוק העליון מציג את הבקשות לאורך זמן, והקו הכחול התחתון מציג את מספר המקרים של קונטיינרים שהופעלו כדי לטפל בבקשות.

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

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