במאמר הזה מוסבר איך להגדיר את מכונות ה-VM של העובדים עבור עבודת Dataflow.
כברירת מחדל, Dataflow בוחר את סוג המכונה למכונות ה-VM של העובדים שמריצות את העבודה, וגם את הגודל והסוג של דיסק האחסון המתמיד. כדי להגדיר את מכונות ה-VM של העובדים, מגדירים את אפשרויות הצינור הבאות כשיוצרים את העבודה.
סוג המכונה
סוג המכונה ב-Compute Engine שבה Dataflow משתמשת כשמפעילים מכונות וירטואליות של עובדים. אפשר להשתמש בסוגי מכונות x86 או Arm, כולל סוגי מכונות בהתאמה אישית.
Java
מגדירים את האפשרות workerMachineType של צינור עיבוד הנתונים.
Python
מגדירים את האפשרות machine_type של צינור עיבוד הנתונים.
המשך
מגדירים את האפשרות worker_machine_type של צינור עיבוד הנתונים.
ב-Arm, סדרות המכונות Tau T2A ו-C4A נתמכות. מידע נוסף על שימוש במכונות וירטואליות של Arm זמין במאמר שימוש במכונות וירטואליות של Arm ב-Dataflow.
יש תמיכה אוטומטית במכונות וירטואליות מסוג x86.
לא מומלץ להשתמש בסוגי מכונות עם ליבות משותפות (לדוגמה,
f1-micro, g1-small, e2-micro,e2-smallו-e2-medium) לעבודות של Dataflow, והם לא נתמכים במסגרת הסכם רמת השירות של Dataflow.החיוב לא תלוי במשפחת סוגי המכונות. מידע נוסף זמין במאמר בנושא תמחור של Dataflow.
בסוגי המכונות
f1-microו-g1-small, החיוב ב-Dataflow הוא כאילו יש vCPU אחד, ובסוגי המכונותe2-micro,e2-smallו-e2-medium, החיוב ב-Dataflow הוא כאילו יש 2 ליבות vCPU. החיוב על השימוש בסוגי המכונות האלה מתבצע גם אם הן מספקות פחות מ-vCPU שחויבו על זמן שימוש רציף במעבד.
סוגי מכונות בהתאמה אישית
כדי לציין סוג מכונה מותאם אישית, צריך להשתמש בפורמט הבא:
FAMILY-vCPU-MEMORY. מחליפים את מה שכתוב בשדות הבאים:
- FAMILY. משתמשים באחד מהערכים הבאים:
סדרת מכונות ערך N1 customN2 n2-customN2D n2d-customn4-customE2 e2-custom - vCPU. מספר המעבדים הווירטואליים.
- MEMORY. הזיכרון, ב-MB.
כדי להפעיל זיכרון מורחב, מוסיפים את -ext לסוג המכונה. דוגמאות: n2-custom-6-3072,
n2-custom-2-32768-ext.
מידע נוסף על סוגי מכונות מותאמות אישית זמין במאמר סוגי מכונות מותאמות אישית במסמכי העזרה של Compute Engine.
סוג הדיסק
סוג הדיסק לאחסון מתמיד שבו ייעשה שימוש.
אל תציינו Persistent Disk כשמשתמשים ב-Streaming Engine או בסוג המכונה N4.
Java
מגדירים את האפשרות workerDiskType של צינור עיבוד הנתונים.
Python
מגדירים את האפשרות worker_disk_type של צינור עיבוד הנתונים.
המשך
מגדירים את האפשרות disk_type של צינור עיבוד הנתונים.
כדי לציין את סוג הדיסק, משתמשים בפורמט הבא:
compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE.
מחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט
- ZONE: האזור של ה-Persistent Disk, לדוגמה
us-central1-b - DISK_TYPE: סוג הדיסק, לדוגמה
pd-ssd,pd-standardאוhyperdisk-balanced
מידע נוסף מופיע בדף העיון של Compute Engine API בנושא diskTypes.
הקצאת IOPS ותפוקה
כשמשתמשים בדיסקים מסוג Hyperdisk Balanced, אפשר להקצות IOPS ותפוקה בלי קשר לגודל הדיסק. כדי להקצות IOPS ו-Throughput, משתמשים באפשרויות הבאות של צינור עיבוד הנתונים:
Java
- כדי להקצות IOPS, מגדירים את האפשרות
diskProvisionedIOPSשל צינור הנתונים. - כדי להקצות משאבים לפי התפוקה שנקבעה ב-MiB/s, מגדירים את
diskProvisionedThroughputpipeline option.
Python
- כדי להקצות IOPS, מגדירים את האפשרות
disk_provisioned_iopsשל צינור הנתונים. - כדי להקצות נפח נתונים (throughput) ב-MiB/s, מגדירים את
disk_provisioned_throughput_mibpspipeline option.
המשך
- כדי להקצות IOPS, מגדירים את האפשרות
disk_provisioned_iopsשל צינור הנתונים. - כדי להקצות משאבים לפי התפוקה שנקבעה ב-MiB/s, מגדירים את
disk_provisioned_throughput_mibpspipeline option.
אם לא מגדירים את האפשרויות האלה, עבודות שמשתמשות בדיסקים מסוג hyperdisk-balanced מוגדרות כברירת מחדל לביצועים בסיסיים של 3,000 IOPS וקצב העברה של 140 MiB/s. מידע נוסף זמין במאמר About Hyperdisk Balanced (מידע על Hyperdisk Balanced) במאמרי העזרה של Compute Engine.
מגבלות
- הקצאת IOPS וקצב העברת נתונים ל-Hyperdisk Balanced נתמכת בגרסאות 2.74.0 ואילך של Apache Beam SDK.
גודל כונן
גודל ה-Persistent Disk.
Java
מגדירים את האפשרות diskSizeGb של צינור עיבוד הנתונים.
Python
מגדירים את האפשרות disk_size_gb של צינור עיבוד הנתונים.
המשך
מגדירים את האפשרות disk_size_gb של צינור עיבוד הנתונים.
אם בוחרים באפשרות הזו, צריך לציין לפחות 30 GB כדי להביא בחשבון את קובץ אימג' לאתחול של ה-worker ואת היומנים המקומיים.
הקטנת גודל הדיסק מקטינה את קלט/פלט ה-Shuffle הזמין. עבודות שמוגבלות לערבוב ולא משתמשות בארגון נתונים של Dataflow או במנוע סטרימינג עלולות להוביל להגדלת זמן הריצה ולעלות העבודה.
משימות באצווה
למשימות באצווה באמצעות ארגון נתונים של Dataflow, האפשרות הזו מגדירה את הגודל של דיסק האתחול של worker VM. עבור משימות אצווה שלא משתמשות בארגון נתונים של Dataflow, האפשרות הזו מגדירה את גודל הדיסקים שמשמשים לאחסון נתונים שעברו ערבוב. גודל דיסק האתחול לא מושפע.
אם משימה באצווה משתמשת בארגון נתונים של Dataflow, גודל הדיסק שמוגדר כברירת מחדל הוא 25 GB. אחרת, ברירת המחדל היא 250 GB.
משרות בתחום הסטרימינג
לגבי משימות סטרימינג באמצעות Streaming Engine, האפשרות הזו מגדירה את הגודל של דיסקי האתחול. במשימות של סטרימינג שלא משתמשות ב-Streaming Engine, האפשרות הזו מגדירה את הגודל של כל דיסק קשיח נוסף שנוצר על ידי שירות Dataflow. דיסק האתחול לא מושפע.
אם עבודת סטרימינג לא משתמשת ב-Streaming Engine, אפשר להגדיר את גודל דיסק האתחול באמצעות דגל הניסוי streaming_boot_disk_size_gb. לדוגמה, מציינים --experiments=streaming_boot_disk_size_gb=80 כדי ליצור דיסקים לאתחול בגודל 80GB.
אם משימת סטרימינג משתמשת ב-Streaming Engine, גודל הדיסק שמוגדר כברירת מחדל הוא 30 GB. אחרת, ברירת המחדל היא 400 GB.
פלטפורמת מעבד מינימלית
אם יש לכם עומסי עבודה שרגישים לביצועים ותלויים בתכונות ספציפיות של CPU, אתם יכולים לציין פלטפורמת CPU מינימלית למכונות וירטואליות של עובדים. האפשרות הזו מבטיחה שעובדי Dataflow ישתמשו במעבד שעומד בדרישות של דור ה-CPU שצוין או עולה עליהן.
כדי לציין את פלטפורמת ה-CPU המינימלית, מגדירים את min_cpu_platform
experimental pipeline option.
הערך צריך להיות השם המדויק של פלטפורמת ה-CPU שנבחרה, כמו AMD Milan או Intel Ice Lake. לדוגמה, כדי להגדיר את פלטפורמת ה-CPU המינימלית ל-AMD Milan, מציינים את הערך --experiments=min_cpu_platform='AMD Milan'. רשימה של פלטפורמות CPU נתמכות זמינה במאמר זמינות של פלטפורמות CPU.
מידע על מגבלות זמין במאמר בנושא מגבלות כשמציינים פלטפורמת CPU מינימלית.
כדי לוודא שמכונות וירטואליות של עובדי Dataflow נוצרות עם פלטפורמת המינימום של מעבד שצוינה, בודקים את הרשומות ב-Cloud Logging של המשימה באופן הבא:
- עוברים אל מסוף Cloud Logging במסוף Google Cloud .
משתמשים במסנן הבא ומחליפים את פלטפורמת ה-CPU לדוגמה ואת מזהה משימת Dataflow במידע של המשימה שלכם.
resource.type="gce_instance" protoPayload.request.minCpuPlatform="AMD Milan" "dataflow_job_id"בודקים את היומנים שנוצרו כדי לוודא ש-Dataflow ציין בהצלחה את פלטפורמת המעבד המינימלית במהלך תהליך יצירת המכונה הווירטואלית.
שימוש ב-Cloud Storage FUSE כדי לטעון את הקטגוריות של Cloud Storage במכונות וירטואליות של Dataflow
Cloud Storage FUSE מאפשר לכם לטעון את הקטגוריות של Cloud Storage ישירות במכונות וירטואליות של Dataflow, כך שהתוכנה יכולה לגשת לקבצים כאילו הם מקומיים. השילוב הזה מבטל את הצורך בהורדה מראש של נתונים, ומייעל את הגישה לנתונים עבור עומסי העבודה שלכם. מידע נוסף זמין במאמר בנושא עיבוד נתונים של למידת מכונה באמצעות Dataflow ו-Cloud Storage FUSE.