Jitter - למה Latency של הרשת הוא לא הבעיה, אלא חוסר הוודאות שלה

תוכן עניינים

Jitter - למה Latency של הרשת הוא לא הבעיה, אלא חוסר הוודאות שלה

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

Latency גבוה אך יציב ניתן להתמודד איתו. Latency שמשתנה מרגע לרגע - הרבה פחות.

לא כל Latency נולד שווה

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

אם בקשה לפעמים לוקחת 5 מילישניות, לפעמים 20, ולפעמים 200 - המערכת כבר לא יודעת למה לצפות.

כאן נכנס מושג קריטי: jitter.

מה זה בעצם jitter?

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

שתי רשתות יכולות להציג אותו Latency ממוצע, אבל חוויית המערכת עליהן תהיה שונה לחלוטין:

  • רשת אחת: איטית, אך עקבית
  • רשת שנייה: לפעמים מהירה מאוד, לפעמים איטית מאוד

מבחינת מערכת - הרשת השנייה מסוכנת יותר.

למה שונות מזיקה יותר מאיטיות

מערכות מתוכננות סביב הנחות. Buffers, timeouts, retries, backpressure - כולם מניחים טווחי זמן סבירים.

כשהשונות גדלה:

  • תורים מתמלאים באופן לא צפוי
  • timeouts מופעלים שלא לצורך
  • retries יוצרים עומס נוסף
  • רכיבים מאבדים סנכרון זה עם זה

הבעיה אינה הזמן - אלא חוסר היכולת לחזות אותו.

המשל: כביש מהיר לא עקבי

דמיינו כביש שבו:

  • לפעמים הנסיעה אורכת 10 דקות
  • לפעמים 40
  • בלי דפוס ברור

לעומת כביש שלוקח תמיד 30 דקות.

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

מערכות חושבות בדיוק כך.

למה חיזוי חשוב יותר ממהירות

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

Latency צפוי מאפשר:

  • תכנון עומסים נכון
  • הקצאת משאבים מדויקת
  • חוויית משתמש יציבה
  • Scale נשלט ולא כאוטי

Latency לא צפוי מכריח את המערכת לעבוד במצב חירום קבוע.

תכנון מערכות תחת חוסר ודאות

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

  • פחות מרדף אחרי המילישנייה האחרונה
  • יותר שליטה בטיילים (P95, P99)
  • יותר מנגנונים שמרככים קפיצות
  • פחות הנחות אופטימיות על הרשת

מערכת שלא מתכננת עבור jitter - מתכננת לעצמה הפתעות.

סיום

Latency הוא מספר. שונות היא התנהגות.

ומערכות לא חוות מספרים - הן חוות התנהגות לאורך זמן.

ברגע שמבינים זאת, מבינים שגם ברשת - הוודאות חשובה יותר מהמהירות.

תגובות