מידע על הכלי לזיהוי צווארי בקבוק ב-Dataflow

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

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

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

איך פועל זיהוי צווארי בקבוק

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

בצינורות רבים, התפוקה הכוללת מוגבלת על ידי רכיב או שלב יחיד, ונוצר צוואר בקבוק או האטה בהתקדמות העבודה. אם רכיב במורד הזרם לא יכול לעבד נתונים מהר כמו רכיב במעלה הזרם, התור שביניהם מתחיל להתמלא. לדוגמה, אם רכיב ערבוב (shuffle) של סטרימינג במעלה הזרם (upstream) מייצר נתונים מהר יותר מרכיב DoFn איטי במורד הזרם (downstream) שהוגדר על ידי המשתמש יכול לעבד את הנתונים, התור יתמלא.

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

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

  • הפעלה אקראית בסטרימינג
  • פונקציות בהגדרת המשתמש (DoFn threads)
  • שמירת מצב קבוע

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

סוגים של צווארי בקבוק

זיהוי צוואר בקבוק ב-Play Console בגלל מקשי קיצור או מקביליות לא מספקת של מפתחות.

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

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

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

המאמרים הבאים