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