לא מעמיסים על מערכת קרה
לא מעמיסים על מערכת קרה
חימום הוא השלב שבו מערכת עוברת מ-Cold ל-Warm.
בשלב הזה:
- ה-cache ריק
- חיבורים עוד לא נפתחו
- נתיבים לא “חמים”
- תורים עוד לא התייצבו
כל בקשה מפעילה יותר עבודה מאשר במצב רגיל.
כלומר: המערכת נמצאת במצב הכי פגיע שלה.
אז למה צריך להגביל עומסים בזמן הזה
כי אם נותנים למערכת עומס מלא כשהיא עדיין Cold - מבקשים ממנה לעשות את העבודה הכי כבדה בדיוק כשהיא הכי חלשה.
זה יוצר שרשרת בעייתית:
- בקשות נכנסות מהר
- כל בקשה יקרה יותר לעיבוד
- זמני תגובה מתארכים
- timeouts ו-retries מתחילים
- העומס גדל עוד יותר
לפני שהמערכת הספיקה “להתחמם”, היא כבר נכנסת ללחץ.
מה זה אומר בפועל “להגביל עומסים”
זה לא מושג תאורטי. זו החלטה מאוד קונקרטית.
המשמעות היא, למשל:
- לא לקבל את מלוא קצב הבקשות מיד
- לתת למערכת לעלות בהדרגה
- לעצור בקשות לא קריטיות
- להעדיף חלק מהעבודה על פני אחרת
- לא לאפשר retries אגרסיביים בתחילת הדרך
המטרה אינה להיות מהירה - אלא להיות יציבה מספיק כדי להתחמם.
למה זה חשוב גם אם המערכת “חזקה”
גם מערכת עם הרבה משאבים לא חסינה ל-Cold start.
כי הבעיה אינה רק קיבולת - אלא אופי העבודה:
- פתיחת חיבורים היא יקרה
- מילוי cache הוא יקר
- יצירת מבנים פנימיים היא יקרה
- הכול קורה יחד, בלי ספיגה
אם כל זה קורה תחת עומס מלא - נוצר עומס מרוכז במקום הדרגתי.
המשל הכי פשוט
דמיינו מטבח תעשייתי בבוקר.
לפני שמתחילים לשרת לקוחות צריך:
- לחמם תנורים
- להכין עמדות
- לפתוח חומרי גלם
אם מגיע גל לקוחות מלא לפני שהמטבח מוכן - לא משנה כמה מוכשרים הטבחים.
סיכום
מגבילים עומסים בזמן חימום לא כדי “להיות איטיים” - אלא כדי לאפשר למערכת להגיע למצב שבו היא באמת יכולה לעבוד.
Warm הוא מצב עבודה. Cold הוא שלב מעבר.
מערכות שנכשלות בהפעלה לא נכשלות בגלל חוסר כוח - אלא בגלל חוסר סבלנות.