לא מעמיסים על מערכת קרה

תוכן עניינים

לא מעמיסים על מערכת קרה

חימום הוא השלב שבו מערכת עוברת מ-Cold ל-Warm.

בשלב הזה:

  • ה-cache ריק
  • חיבורים עוד לא נפתחו
  • נתיבים לא “חמים”
  • תורים עוד לא התייצבו

כל בקשה מפעילה יותר עבודה מאשר במצב רגיל.

כלומר: המערכת נמצאת במצב הכי פגיע שלה.

אז למה צריך להגביל עומסים בזמן הזה

כי אם נותנים למערכת עומס מלא כשהיא עדיין Cold - מבקשים ממנה לעשות את העבודה הכי כבדה בדיוק כשהיא הכי חלשה.

זה יוצר שרשרת בעייתית:

  • בקשות נכנסות מהר
  • כל בקשה יקרה יותר לעיבוד
  • זמני תגובה מתארכים
  • timeouts ו-retries מתחילים
  • העומס גדל עוד יותר

לפני שהמערכת הספיקה “להתחמם”, היא כבר נכנסת ללחץ.

מה זה אומר בפועל “להגביל עומסים”

זה לא מושג תאורטי. זו החלטה מאוד קונקרטית.

המשמעות היא, למשל:

  • לא לקבל את מלוא קצב הבקשות מיד
  • לתת למערכת לעלות בהדרגה
  • לעצור בקשות לא קריטיות
  • להעדיף חלק מהעבודה על פני אחרת
  • לא לאפשר retries אגרסיביים בתחילת הדרך

המטרה אינה להיות מהירה - אלא להיות יציבה מספיק כדי להתחמם.

למה זה חשוב גם אם המערכת “חזקה”

גם מערכת עם הרבה משאבים לא חסינה ל-Cold start.

כי הבעיה אינה רק קיבולת - אלא אופי העבודה:

  • פתיחת חיבורים היא יקרה
  • מילוי cache הוא יקר
  • יצירת מבנים פנימיים היא יקרה
  • הכול קורה יחד, בלי ספיגה

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

המשל הכי פשוט

דמיינו מטבח תעשייתי בבוקר.

לפני שמתחילים לשרת לקוחות צריך:

  • לחמם תנורים
  • להכין עמדות
  • לפתוח חומרי גלם

אם מגיע גל לקוחות מלא לפני שהמטבח מוכן - לא משנה כמה מוכשרים הטבחים.

סיכום

מגבילים עומסים בזמן חימום לא כדי “להיות איטיים” - אלא כדי לאפשר למערכת להגיע למצב שבו היא באמת יכולה לעבוד.

Warm הוא מצב עבודה. Cold הוא שלב מעבר.

מערכות שנכשלות בהפעלה לא נכשלות בגלל חוסר כוח - אלא בגלל חוסר סבלנות.

תגובות