ממקסמים את הגמישות והיעילות של האשכולות והמשימות
בדף הזה מפורטות שיטות מומלצות ושיטות לתזמון שיעזרו לכם לתכנן אשכולות של Managed Service for Apache Spark שיהיו עמידים, ימקסמו את הזמינות של המשאבים Google Cloud באזורים שונים, יקצרו את העיכובים בהקצאת המשאבים וינצלו את היתרונות של אופטימיזציות הביצועים והעלויות.
סקירה כללית על זמינות משאבים
הפעלת משימות באשכולות קשיחים של Managed Service for Apache Spark יוצרת נקודות כשל יחידות שעלולות להוביל להפסקות של משימות ולכשלים באשכולות ובמשימות בגלל חוסר זמינות מקומי או עיכובים בהקצאת משאבים.
הסיכון לזמינות משאבים נמוכה באשכולות שהוגדרו עם אחד מהדפוסים הנוקשים הבאים:
- מיקום קבוע של אזור: קידוד קשיח של אזור יחיד באמצעות הדגל
zoneאו השדה במקום לאפשר ל-Managed Service for Apache Spark AutoZone למקם את האשכול באופן דינמי באזור האופטימלי. האנטי-תבנית הזו מונעת יצירת אשכולות באמצעות משאבי מחשוב שזמינים באזורים סמוכים. - סוג מכונה או דור יחיד לכל תפקיד של צומת: הגבלת התפקידים של הצמתים לדור או לסוג מכונה יחיד. האנטי-תבנית הזו מונעת מהאשכול לחזור לחלופות.
- שינוי קנה מידה אנכי עם פחות מכונות וירטואליות גדולות: שינוי קנה מידה של אשכולות באופן אנכי כדי להסתמך על מספר קטן של צורות גדולות של מכונות וירטואליות. הדפוס הזה מגביל את הגמישות בתזמון.
- יצירת אשכול בשיטת הכול או כלום: כל צמתי העובדים צריכים להיות מוקצים בו-זמנית, במקום להשתמש ביצירת אשכול חלקי בשילוב עם שינוי גודל אוטומטי. האנטי-תבנית הזו גורמת ליצירת אשכול להיכשל אם לא ניתן להקצות צומת עובד בגלל חוסר זמינות זמני של משאבים.
- עלייה חדה בתזמון של עומס השיא: הפעלה של צינורות להעברת נתונים של קבוצות גדולות של נתונים בשעות של עומס השיא, מה שמגדיל את התחרות על משאבים באזור.
השגת משאבים היא שיטה לעיצוב משימות כך שיהיו גמישות מבחינת חומרה, יפעלו בכמה אזורים ויהיו ניתנות להרחבה. הפרדה של אשכולות מהגדרות נוקשות והפעלה של מעברים חזרה למשפחות של כמה מכונות מאפשרים להגדיל את שיעורי ההצלחה של יצירת אשכולות, למזער את זמן האחזור של ההפעלה ולהשיג באופן עקבי הסכמי רמת שירות (SLA).
המלצות לגבי זמינות משאבים
כדי לשפר את זמינות המשאבים ואת יציבות העבודות, כדאי להשתמש באופטימיזציות הבאות:
שימוש במכונות וירטואליות גמישות
התכונה Flexible VM מאפשרת לציין רשימה מדורגת של סוגי מכונות וירטואליות לצורך שימוש בצמתי עבודה ראשיים, ראשוניים ומשניים. כדי להגדיל את שיעורי ההצלחה של היצירה, המערכת מעריכה את סוגי ה-VM שמופיעים ברשימה ובוחרת באופן אוטומטי אזורים עם קיבולת זמינה.
המלצה: כדאי להשתמש במכונות וירטואליות גמישות עם החלפות של דיסקים, כדי שתוכלו לציין סוגים שונים של דיסקים, כמו hyperdisk ודיסק לאחסון מתמיד, למשפחות שונות של מכונות פוטנציאליות באותה מדיניות אשכול. אפשר גם לשלב בין משפחות מכונות מדור שני ודור רביעי במדיניות אחת כדי להרחיב את היקף העבודות ולעקוף את מגבלות הקיבולת.
לגבי משימות שמשתמשות במכונות N2 ו-N2D, כדאי לשקול את הדירוגים הבאים:
- דירוג 0: N2, N2D
- דירוג 1: N4, N4D (עם Hyperdisk Balanced)
- דירוג 2: C4, C4D, C3, C3D (עם Hyperdisk Balanced). אפשר להשתמש בכונני SSD מקומיים עם C4 ו-C4D, אבל בדרך כלל 8 או 16 ליבות תומכות רק בכונן SSD מקומי אחד או שניים.
- דירוג 3: E2 (ביצועים נמוכים יותר; מומלץ להשתמש רק אם יש צורך)
לדוגמה, למשימות שמשתמשות ב-n2d-standard-16, הדירוגים הם:
- דירוג 0:
n2d-standard-16,n2-standard-16 - בדירוג 1:
n4-standard-16,n4d-standard-16 - דרגה 2:
c4-standard-16,c4d-standard-16,c3-standard-22,c3d-standard-16 - דרגה 3:
e2-standard-16
כשמשתמשים במכונות וירטואליות גמישות, חשוב להביא בחשבון את הגורמים הבאים:
תמיכה בסוגים שונים של דיסקים: סוגי מכונות מדור 3 ומדור 4 תומכים רק בסוגי דיסקים של Hyperdisk ולא תומכים בסוגי דיסקים של Persistent Disk. כשמשלבים בין Gen2 ל-Gen4, מציינים
diskConfigלכל בחירת מופע ב-instanceFlexibilityPolicy. מידע נוסף מופיע במאמר בנושא החלפת דיסקים.- מומלץ להשתמש ב-Hyperdisk Balanced עם ערכי הבסיס של IOPS ו-Throughput שמפורטים בביצועים של Hyperdisk Balanced כברירת מחדל.
מכסות משאבים: כשמגדירים מדיניות של מכונות וירטואליות גמישות עם סוגים חלופיים, מערכת Compute Engine בודקת את המכסות של כל הסוגים והדיסקים האפשריים באזור. מוודאים שהוקצו לפרויקט מכסות מספיקות של מחשוב ודיסקים לכל הפריטים שהוגדרו.
הנחות ב-Compute Engine: כדאי לנצל את ההנחות הגמישות תמורת התחייבות להוצאה (CUD) כדי לחסוך בהוצאות על כמה משפחות של מכונות וירטואליות וכמה אזורים.
תמחור: אפשר להשתמש בGoogle Cloud מחשבון עלויות כדי להשוות את העלויות של כל דרגה במדיניות.
תבניות הגדרה ודוגמאות לפריסה זמינות במאמרים הבאים:
שימוש במיקום אוטומטי של אזור
משתמשים במיקום AutoZone כדי לאפשר ל-Managed Service for Apache Spark לבחור את האזור הטוב ביותר להקצאת משאבים. אם אתם משתמשים ברשתות ענן וירטואלי פרטי (VPC) בהתאמה אישית, ודאו שלרשת המשנה יש מספיק כתובות IP בכל האזורים.
שימוש בצורות קטנות יותר של מכונות
כדאי לתכנן את העבודות כך שניתן יהיה להרחיב אותן אופקית על פני סוגים קטנים יותר של מכונות (4, 8 או 16 ליבות), במקום להרחיב אותן אנכית באמצעות מכונות וירטואליות גדולות יותר. גודלי מכונות וירטואליות קטנים יותר זמינים יותר באזורים שונים, ולכן עוזרים למנוע עיכובים ביצירה.
- בודקים ומשנים את הארכיטקטורה של עבודות שמשתמשות בסוגי מכונות גדולים לצמתים של מנהלי התקנים.
- בדיקת משימות שמופעלות רק בצמתי driver ללא צמתי worker (אשכולות עם צומת יחיד). אי אפשר להגדיל את הקיבולת של עבודות שמופעלות באשכולות עם צומת יחיד באופן דינמי, והביצוע שלהן מוגבל למארח פיזי יחיד.
שימוש בשינוי גודל אוטומטי של אשכול
כדי לנהל את הקיבולת של משימות עם תנודות במשאבים (שיאים), כדאי להשתמש בשינוי גודל אוטומטי של אשכולות עם מספר מקסימלי מספיק של מופעים.
שימוש ביצירת אשכול חלקי עם התאמה אוטומטית לעומס
אפשר להשתמש ביצירה חלקית של אשכול, שמאפשרת להגדיר מספר מינימלי של עובדים ראשיים עם שינוי גודל אוטומטי. אם האשכול מתחיל עם פחות עובדים מהנדרש, שינוי גודל אוטומטי יכול להוסיף עוד עובדים באופן דינמי ברגע שהמשאבים הופכים לזמינים.
תזמון משימות בשעות שבהן העומס נמוך
כדאי לתזמן את העבודות בשעות שבהן העומס נמוך, כמו בשעות הצהריים ובסופי שבוע. כדאי לתזמן בשעות לא סטנדרטיות, למשל בשעה 10:07 במקום בשעה 10:00, כדי להימנע מעליות פתאומיות בשימוש.
המאמרים הבאים
- איך נותנים עדיפות לסוגי מכונות וירטואליות באמצעות מכונות וירטואליות גמישות
- איך מגדירים מיקום של אזור אוטומטי
- איך יוצרים אשכול חלקי
- איך מגדירים מדיניות של שינוי גודל אוטומטי
- מידע נוסף על הנחות תמורת התחייבות לשימוש