כשמצמידים עבודה לסוג מכונה ספציפי באמצעות האפשרות workerMachineType pipeline, יש סיכון לעיכובים או לכשלים בעבודה בגלל חוסר במשאבים. התכונה "בחירה אוטומטית של מכונות וירטואליות" פותרת את הבעיה הזו. היא בוחרת באופן אוטומטי וורקרים ממאגר של סוגי מכונות תואמים וזמינים, באמצעות הפעלה גמישה של מכונות ב-Compute Engine. כך אפשר לוודא שצינורות עיבוד הנתונים ב-Dataflow מקבלים קיבולת באופן אמין, לשמור על ביצועים עקביים ולמנוע הפרעות.
הגדרות לא נתמכות
ההגדרה 'בחירה אוטומטית של מכונה וירטואלית' מושבתת אם צינור הנתונים מוגדר עם אחת מהאפשרויות הבאות:
- Dataflow Prime מופעל.
- האפשרות
min_cpu_platformמוגדרת לפייפליין. - נעשה שימוש בדיסקים מסוג Hyperdisk Balanced או בביצועים שהוקצו (IOPS ו-Throughput). משימות שיופעלו עם ההגדרות האלה ייכשלו.
- האפשרות Confidential VM מופעלת.
- נדרשים מאיצים (GPU או TPU).
בנוסף, התכונה 'בחירה אוטומטית של מכונות וירטואליות' לא נתמכת במשימות שמשתמשות ב-Shuffle Appliance או ב-Streaming Appliance.
הפעלת בחירה אוטומטית של מכונה וירטואלית
התכונה "בחירה אוטומטית של מכונות וירטואליות" מופעלת באופן אוטומטי בכל אחד מהתרחישים הבאים:
- אם מגדירים רמזים למשאבים מסוג
min_ramאוcpu_countלשלבים בצינור שלא דורשים מאיצים (GPU או TPU). במאמר הנחיות למשאבים בצינור עיבוד נתונים מוסבר איך משתמשים בהנחיות למשאבים במשימות שמבוססות על תבניות.
התנהגות של בחירת VM אוטומטית
אפשר להגדיר רמזים של משאב min_ram ו-cpu_count בנפרד או בשילוב. לדוגמה:
- לדוגמה, יכול להיות שבעבודה עם
cpu_count=2יוקצו מופעים עםn4-standard-2(2 vCPU, 8GB RAM),c4-standard-2(2 vCPU, 7GB RAM) וסוגי מכונות אחרים. - משימה עם
cpu_count=4וגםmin_ram=16GBיכולה להקצות מכונות עםn4-standard-4(4 vCPUs, 16 GB RAM),c4-highmem-4(4 vCPUs, 31 GB RAM) וסוגי מכונות אחרים.
התכונה 'בחירה אוטומטית של מכונות וירטואליות' מבצעת אופטימיזציה של בחירת המכונות הווירטואליות כדי להשיג משאבים. המשמעות היא שאולי תהיה ירידה בביצועים בזמן השימוש בתכונה 'בחירה אוטומטית של מכונות וירטואליות' כדי לשפר את הזמינות של חלק מהמשימות המותאמות במיוחד. מומלץ לבדוק את הבחירה האוטומטית של מכונות וירטואליות על קבוצת משנה של משימות קיימות, לפני שפורסים אותן בהדרגה באופן נרחב יותר. מידע נוסף על זמינות משאבים מופיע במאמר שיפור הזמינות של משאבים לעבודות במסמכי העזרה של Batch.
מערכת Dataflow מנסה להשתמש קודם במשפחות מכונות מהדור הרביעי (למשל, N4 או C4) כדי להציע יעילות טובה יותר. אם מכונות מהדור הרביעי לא זמינות באזור שלכם, אם אין לכם מספיק מכסות או אם הן לא תואמות להגדרות האישיות שלכם, מערכת Dataflow עוברת באופן אוטומטי למשפחות מכונות מהדור השני שזמינות באופן נרחב (לדוגמה, N2 או E2) כדי להבטיח שהמשימה תוכל להתחיל בלי עיכובים בקיבולת.
אם מציינים סוג דיסק כמו pd-ssd או pd-standard כשמפעילים את בחירת ה-VM האוטומטית באמצעות רמזים למשאבים (התאמה נכונה), Dataflow מקצה רק משפחות מכונות תואמות מהדור השני. כדי להבטיח תאימות מקסימלית ולאפשר שימוש בדורות חדשים יותר של מכונות, אל תקצו סוג דיסק.
מקומות שמורים ב-Compute Engine
אם אתם משתמשים במקומות שמורים ב-Compute Engine עם בחירה אוטומטית של מכונות וירטואליות, שימו לב לנקודות הבאות:
- אם הגדרתם שהמערכת תשתמש אוטומטית במכונות וירטואליות ששמרתם, יכול להיות שהיא תשתמש בהן אם התכונה "בחירה אוטומטית של מכונות וירטואליות" תקצה סוגי מכונות שתואמים למכונות הווירטואליות ששמרתם.
- התכונה 'בחירה אוטומטית של מכונות וירטואליות' צורכת מכונות וירטואליות כשהן זמינות. לכן, אי אפשר לציין שהשירות יצרוך מכונות מהזמנה ספציפית.
בעיות מוכרות
כשמשתמשים בתכונה 'בחירה אוטומטית של מכונות וירטואליות', חשוב לשים לב לבעיות המוכרות הבאות:
מקביליות לא צפויה
אם אתם רואים ניצול נמוך של מעבד (CPU) או מקביליות לא צפויה ב-worker VM כשמשתמשים בבחירה אוטומטית של מכונות וירטואליות עם התאמה נכונה, יכול להיות שזה נובע מבעיה מוכרת שבה מספר ה-Thread לכל worker לא מוגדר אוטומטית כך שיתאים למספר ה-vCPU של סוג המכונה שנבחר.
כדי לעקוף את הבעיה, אפשר להגדיר במפורש את מספר ה-threads של ה-worker harness באמצעות האפשרות של צינור עיבוד הנתונים numberOfWorkerHarnessThreads. האפשרות הזו חלה באופן גלובלי על כל מאגרי ה-workers בצינור עיבוד הנתונים.