בדף הזה מוסבר איך לפתור בעיות שנובעות מסיבות נפוצות שגורמות לעיכובים או לתקיעות של עבודות Batch ב-Dataflow.
אם עבודת האצווה איטית או תקועה, אפשר להשתמש בכרטיסייה פרטי הביצוע כדי לקבל מידע נוסף על העבודה ולזהות את השלב או את העובד שגורמים לצוואר בקבוק.
זיהוי שורש הבעיה
בודקים אם יש בעיות בהפעלת העובד. מידע נוסף זמין במאמר בנושא שגיאה בסנכרון של פוד.
כדי לוודא שהעבודה התחילה לעבד את הנתונים, מחפשים ביומן job-message את רשומת היומן הבאה:
All workers have finished the startup processes and began to receive work requestsכדי להשוות את ביצועי המשימות בין משימות שונות, צריך לוודא שנפח נתוני הקלט, הגדרת העובדים, התנהגות ההתאמה האוטומטית של קנה המידה וההגדרות של Dataflow Shuffle זהים.
בודקים ביומני job-message אם יש בעיות כמו חריגה ממכסות, בעיות במלאי או מיצוי של כתובות IP.
בכרטיסייה פרטי הביצוע, משווים בין התקדמות השלב כדי לזהות שלבים שנמשכו זמן רב יותר.
בודקים אם יש עבודות שלא הסתיימו. מידע נוסף מופיע במאמר בנושא פתרון בעיות של משימות שמתעכבות בעבודות אצווה.
בודקים את מדדי התפוקה, המעבד (CPU) והשימוש בזיכרון.
בודקים את יומני העובדים כדי לראות אם יש אזהרות ושגיאות.
- אם יומני העובדים מכילים שגיאות, צריך להציג את מעקב המחסנית. בודקים אם השגיאה נגרמת בגלל באג בקוד.
- מחפשים שגיאות ב-Dataflow. פתרון בעיות ב-Dataflow
- מחפשים שגיאות שקשורות לזיכרון, שיכולות לגרום לצינור עיבוד נתונים להיתקע. אם מופיעות שגיאות שקשורות לזיכרון, פועלים לפי השלבים במאמר פתרון בעיות שקשורות לזיכרון ב-Dataflow.
- כדי לזהות שלב איטי או תקוע, בודקים את היומנים של העובדים כדי למצוא הודעות
Operation ongoing. אפשר להציג את דוח הקריסות כדי לראות איפה השלב מבזבז זמן. מידע נוסף זמין במאמר בנושא העיבוד נתקע או שהפעולה נמשכת.
אם אתם לא משתמשים ב-Dataflow Shuffle, כדאי לבדוק את יומני ה-Shuffler כדי לראות אם יש אזהרות ושגיאות במהלך פעולת ה-Shuffle. אם מופיעה שגיאת זמן קצוב לתפוגה של RPC ביציאה 12345 או 12346, יכול להיות שחסר כלל חומת אש במשימה. כללים של חומת אש ל-Dataflow
אם הפעלתם את Portable Runner, צריך לבדוק את היומנים של harness כדי לראות אם יש שגיאות. מידע נוסף זמין במאמר בנושא פתרון בעיות ב-Portable Runner.
זיהוי של משתמשים שלא השלימו את ההמרה
פריט עבודה שמתקדם לאט יחסית לפריטי עבודה אחרים בשלב. מידע על זיהוי ותיקון של עבודות שמתעכבות זמין במאמר פתרון בעיות של עבודות שמתעכבות בעבודות אצווה.
זיהוי שלבים איטיים או תקועים
כדי לזהות שלבים איטיים או תקועים, משתמשים בתצוגה התקדמות השלב. פסים ארוכים יותר מציינים שהשלב נמשך זמן רב יותר. בתצוגה הזו אפשר לזהות את השלבים הכי איטיים בצינור.
אחרי שמאתרים את השלב שבו יש צוואר בקבוק, אפשר לבצע את הפעולות הבאות:
- מזהים את העובד המפגר בשלב הזה.
- אם אין עובדים עם פיגור, אפשר לזהות את השלב הכי איטי באמצעות החלונית Stage info. אפשר להשתמש במידע הזה כדי לזהות מועמדים לאופטימיזציה של קוד המשתמש.
זיהוי עובד עם פיגור
כדי לזהות עובד שמתעכב בשלב מסוים, משתמשים בתצוגה Worker progress. בתצוגה הזו אפשר לראות אם כל העובדים מעבדים את העבודה עד סוף השלב, או אם עובד אחד תקוע במשימה שמתעכבת. אם מצאתם עובד שפועל לאט מדי, פועלים לפי השלבים הבאים:
- צפייה בקובצי היומן של העובד. מידע נוסף זמין במאמר בנושא מעקב אחרי יומנים של צינורות נתונים וצפייה בהם.
- אפשר לראות את מדדי השימוש במעבד ואת הפרטים של התקדמות העובדים עבור עובדים מפגרים. אם אתם רואים שימוש גבוה או נמוך באופן חריג ב-CPU, בקובצי היומן של העובד, חפשו את הבעיות הבאות:
כלים לניפוי באגים
אם צינור הנתונים איטי או תקוע, הכלים הבאים יכולים לעזור לכם לאבחן את הבעיה.
- כדי ליצור קורלציה בין אירועים ולזהות צווארי בקבוק, אפשר להשתמש ב-Cloud Monitoring for Dataflow.
- כדי לעקוב אחרי הביצועים של צינור עיבוד הנתונים, משתמשים ב-Cloud Profiler.
- חלק מהטרנספורמציות מתאימות יותר לצנרות עם נפח גבוה מאחרות. הודעות ביומן יכולות לזהות טרנספורמציה של משתמש שנתקעה בצינורות של עיבוד באצווה או של עיבוד בזמן אמת.
- כדי לקבל מידע נוסף על עבודה תקועה, אפשר להשתמש במדדים של עבודות Dataflow.
למדדים נוספים שלא נכללים בממשק האינטרנטי למעקב אחרי Dataflow, אפשר לעיין ברשימה המלאה של מדדי Dataflow בGoogle Cloud מדדים.