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

רשמו את המועד לפני שנוגעים בגשש

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

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

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

חלקו את התקציב בין כל שלב

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

StageWhat it contributesWho owns it
Capture and packetizationEncoder frame size, aggregationApplication owner
Tunnel and transitEncryption, queueing, path lengthNetwork owner
Receiver bufferDeliberate waiting to absorb variationApplication owner
Application processingDecode and render timeApplication owner

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

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

מדדו השהיה חד-כיוונית עם שעון ישר

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

קלטו כמה מאות חבילות ולא חופן, ותעדו את מצב השעון באותו זמן:

$ ntpq -p
$ owping -c 300 -i 0.2 10.90.0.1
$ ping -c 200 -i 0.2 10.90.0.1 | tail -n 3

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

דווחו על הזנב ועל החבילות המאחרות

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

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

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

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

מאמרים קשורים