פתרון בעיות ביצירת אשכול

במאמר הזה מוסברות הודעות השגיאה הנפוצות שמופיעות כשיוצרים אשכולות, ומוצגים טיפים לפתרון בעיות שקשורות ליצירת אשכולות.

הודעות שגיאה נפוצות ביצירת אשכולות

  • למשתמש אין הרשאה לפעול כחשבון שירות

    הסיבה: לחשבון המשתמש שמנסה ליצור את אשכול Managed Service for Apache Spark אין את ההרשאות הנדרשות כדי להשתמש בחשבון השירות שצוין. כדי לפרוס משאבים של Managed Service for Apache Spark, המשתמשים צריכים את ההרשאה ActAs בחשבון השירות. ההרשאה הזו כלולה בתפקיד "משתמש בחשבון שירות" (roles/iam.serviceAccountUser) (ראו תפקידים ב-Managed Service for Apache Spark).

    הפתרון: מזהים את המשתמש או את חשבון השירות שמנסים ליצור את האשכול של Managed Service for Apache Spark. מקצים לחשבון המשתמש את התפקיד "משתמש בחשבון שירות" (roles/iam.serviceAccountUser) בחשבון השירות שהאשכול מוגדר להשתמש בו (בדרך כלל, חשבון השירות של המכונה הווירטואלית של Managed Service for Apache Spark).

  • הזמן הקצוב לתפוגה של הפעולה חלף: רק 0 מתוך 2 צומתי נתונים/Node Managers שנדרשים פועלים.

    הסיבה: צומת הבקר לא יכול ליצור את האשכול כי הוא לא יכול לתקשר עם צומתי העובדים.

    הפתרון:

  • הרשאת compute.subnetworks.use נדרשת עבור projects/{projectId}/regions/{region}/subnetworks/{subnetwork}

    הסיבה: השגיאה הזו יכולה להתרחש כשמנסים להגדיר אשכול של Managed Service for Apache Spark באמצעות רשת VPC בפרויקט אחר, ולחשבון השירות של סוכן השירות של Managed Service for Apache Spark אין את ההרשאות הנדרשות בפרויקט ה-VPC המשותף שמארח את הרשת.

    פתרון: פועלים לפי השלבים שמפורטים במאמר יצירת אשכול שמשתמש ברשת VPC בפרויקט אחר.

  • באזור projects/zones/{zone} אין מספיק משאבים זמינים כדי למלא את הבקשה (resource type:compute)

    הסיבה: באזור שבו נוצר האשכול אין מספיק משאבים.

    הפתרון:

    • להשתמש בתכונה Auto Zone placement של Managed Service for Apache Spark כדי ליצור את האשכול בכל אחד מהאזורים עם המשאבים הזמינים.
    • ליצור את האשכול באזור אחר.
  • שגיאות מסוג "חריגה מהמכסה"

    מכסה לא מספיקה של CPUS/CPUS_ALL_REGIONS
    מכסה לא מספיקה של DISKS_TOTAL_GB
    מכסה לא מספיקה של IN_USE_ADDRESSES

    הסיבה: הבקשה שלכם ל-CPU, לדיסק או לכתובת IP חורגת מהמכסה הזמינה.

    פתרון: מבקשים להגדיל את המכסה במסוףGoogle Cloud .

  • פעולת האתחול נכשלה

    הסיבה: פעולת האיניציאליזציה שסופקה במהלך יצירת האשכול לא הותקנה.

    הפתרון:

  • האתחול של הצומת CLUSTER-NAME-m נכשל. ‫... הצגת הפלט ב: <gs://PATH_TO_STARTUP_SCRIPT_OUTPUT>

    הסיבה: לא הצלחנו להפעיל את צומת הבקר של אשכול Managed Service for Apache Spark.

    הפתרון:

  • Cluster creation failed: IP address space exhausted

    הסיבה: מרחב כתובות ה-IP שנדרש כדי להקצות את צומתי האשכול המבוקשים לא זמין.

    הפתרון:

    • ליצור אשכול עם פחות צומתי עובד, אבל עם סוג מכונה גדול יותר.
    • ליצור אשכול ברשת משנה או ברשת אחרת.
    • מצמצמים את השימוש ברשת כדי לפנות מקום לכתובות IP.
    • צריך לחכות עד שיהיו מספיק כתובות IP פנויות ברשת.
  • הודעת שגיאה בסקריפט האיניציאליזציה: למאגר REPO_NAME אין יותר קובץ Release

    הסיבה: מאגר ה-backports של Debian oldstable נמחק.

    הפתרון:

    מוסיפים את הקוד הבא לפני הקוד שמפעיל את apt-get בסקריפט האתחול.

    oldstable=$(curl -s https://deb.debian.org/debian/dists/oldstable/Release | awk '/^Codename/ {print $2}');
    stable=$(curl -s https://deb.debian.org/debian/dists/stable/Release | awk '/^Codename/ {print $2}');
    
    matched_files="$(grep -rsil '\-backports' /etc/apt/sources.list*)"
    if [[ -n "$matched_files" ]]; then
      for filename in "$matched_files"; do
        grep -e "$oldstable-backports" -e "$stable-backports" "$filename" || \
          sed -i -e 's/^.*-backports.*$//' "$filename"
      done
    fi
    
  • Timeout waiting for instance DATAPROC_CLUSTER_VM_NAME to report in או Network is unreachable: dataproccontrol-REGION.googleapis.com

    הסיבה: הודעות השגיאה האלה מצביעות על כך שהגדרת הרשת של אשכול Managed Service for Apache Spark לא הושלמה. יכול להיות שחסר הנתיב לשער ברירת המחדל לאינטרנט או כללי חומת האש.

    הפתרון:

    כדי לפתור את הבעיה, אתם יכולים ליצור את בדיקות הקישוריות הבאות:

    • יצירת בדיקת קישוריות בין שתי מכונות וירטואליות של אשכול Managed Service for Apache Spark. תוצאת הבדיקה תעזור לכם להבין אם כללי חומת האש של הרשת, שמאפשרים תעבורת נתונים נכנסת או יוצאת, חלים בצורה נכונה על המכונות הווירטואליות של האשכול.
    • יוצרים בדיקת קישוריות בין מכונה וירטואלית של אשכול Managed Service for Apache Spark לבין כתובת IP נוכחית של ממשק API לבקרה של Managed Service for Apache Spark. כדי לקבל את כתובת ה-IP הנוכחית של Managed Service for Apache Spark control API, משתמשים בפקודה הבאה:
    dig dataproccontrol-REGION.googleapis.com A
    

    משתמשים בכל אחת מכתובות ה-IPv4 שבקטע התשובה של הפלט.

    תוצאת בדיקת הקישוריות תעזור לכם להבין אם הנתיב לשער ברירת המחדל לאינטרנט וחומת האש שמאפשרת תעבורת נתונים יוצאת מוגדרים כמו שצריך.

    בהתאם לתוצאות של בדיקות הקישוריות:

  • שגיאה שנובעת מעדכון

    הסיבה: האשכול קיבל משימה שנשלחה לשירות Managed Service for Apache Spark, אבל לא הצליח להגדיל או להקטין את קנה המידה באופן ידני או באמצעות התאמה אוטומטית לעומס. השגיאה הזו יכולה להיגרם גם בגלל הגדרת אשכול לא סטנדרטית.

    הפתרון:

    • איפוס האשכול: פותחים כרטיס תמיכה, מצרפים קובץ tar לאבחון ומבקשים לאפס את האשכול למצב RUNNING.

    • אשכול חדש: יוצרים מחדש את האשכול עם אותה הגדרה. הפתרון הזה יכול להיות מהיר יותר מאיפוס על ידי צוות התמיכה.

טיפים לפתרון בעיות באשכולות

בקטע הזה מפורטות הנחיות נוספות לפתרון בעיות נפוצות שיכולות למנוע יצירה של אשכולות Managed Service for Apache Spark.

כשלא מצליחים להקצות אשכול של Managed Service for Apache Spark, בדרך כלל מופיעה הודעת שגיאה כללית או סטטוס PENDING או PROVISIONING לפני שהפעולה נכשלת. כדי לאבחן ולפתור בעיות של כשלים באשכולות, צריך לבדוק את יומני האשכולות ולבחון נקודות כשל נפוצות.

תסמינים נפוצים

אלה התסמינים הנפוצים שקשורים לכשלים ביצירת אשכולות:

  • סטטוס האשכול נשאר PENDING או PROVISIONING למשך זמן רב.
  • האשכול עובר למצב ERROR.
  • שגיאות API כלליות במהלך יצירת אשכול, כמו Operation timed out.
  • הודעות שגיאה ביומן או בתגובה מה-API, כמו:

    • ‫RESOURCE_EXHAUSTED: קשור למכסות של מעבד (CPU), דיסק או כתובת IP
    • Instance failed to start
    • Permission denied
    • Unable to connect to service_name.googleapis.com או Could not reach required Google APIs
    • Connection refused או network unreachable
    • שגיאות שקשורות לפעולות אתחול שנכשלו, כמו שגיאות בהרצת סקריפטים וקובץ שלא נמצא.

בדיקת יומני האשכולות

שלב ראשוני חשוב באבחון כשלים ביצירת אשכולות הוא בדיקת יומני האשכולות המפורטים שזמינים ב-Cloud Logging.

  1. פותחים את Logs Explorer במסוף Google Cloud .
  2. סינון לפי אשכולות של Managed Service for Apache Spark:
    • בתפריט הנפתח Resource, בוחרים באפשרות Cloud Managed Service for Apache Spark Cluster.
    • מזינים את cluster_name ו-project_id. אפשר גם לסנן לפי location (אזור).
  3. בדיקת רשומות ביומן:
    • מחפשים הודעות ברמה ERROR או WARNING שמופיעות קרוב לזמן שבו נכשלה יצירת האשכול.
    • כדי לקבל תובנות לגבי בעיות ברמת ה-VM או בעיות בסוכן של Managed Service for Apache Spark, שימו לב ליומנים מהרכיבים master-startup,‏ worker-startup ו-agent.
    • כדי לקבל תובנות לגבי בעיות בזמן ההפעלה של ה-VM, סננו את היומנים לפי resource.type="gce_instance" וחפשו הודעות משמות המכונות שמשויכים לצומתי האשכול, כמו CLUSTER_NAME-m או CLUSTER_NAME-w-0. ביומנים של הקונסולה הטורית אפשר לראות בעיות בהגדרות הרשת, בעיות בדיסק וכשלים בסקריפטים שמתרחשים בשלב מוקדם במחזור החיים של המכונה הווירטואלית.

סיבות נפוצות לכשלים באשכולות וטיפים לפתרון בעיות

בקטע הזה מפורטות הסיבות הנפוצות לכך שיצירת אשכול ב-Managed Service for Apache Spark עלולה להיכשל, וטיפים לפתרון בעיות שקשורות לכשלים באשכולות.

הרשאות IAM לא מספיקות

לחשבון השירות של המכונה הווירטואלית שמשמש את האשכול של Managed Service for Apache Spark צריכים להיות תפקידי IAM מתאימים כדי להקצות מכונות של Compute Engine, לגשת לקטגוריות של Cloud Storage, לכתוב יומנים ולקיים אינטראקציה עם שירותים אחרים של Google Cloud .

  • תפקיד Worker נדרש: מוודאים שלחשבון השירות של ה-VM יש את התפקיד Managed Service for Apache Spark Worker ‏(roles/dataproc.worker). התפקיד הזה כולל את ההרשאות המינימליות שנדרשות ל-Managed Service for Apache Spark כדי לנהל את משאבי האשכול.
  • הרשאות גישה לנתונים: אם המשימות שלכם קוראות מ-Cloud Storage או מ-BigQuery או כותבות אליהם, חשבון השירות צריך תפקידים קשורים, כמו Storage Object Viewer,‏ Storage Object Creator או Storage Object Admin ל-Cloud Storage, או BigQuery Data Viewer או BigQuery Editor ל-BigQuery.
  • הרשאות רישום ביומן: לחשבון השירות צריך להיות תפקיד עם ההרשאות שנדרשות כדי לכתוב יומנים ב-Cloud Logging, כמו התפקיד Logging Writer.

טיפים לפתרון בעיות:

חרגת ממכסות המשאבים

אשכולות של Managed Service for Apache Spark צורכים משאבים מ-Compute Engine ומשירותים אחרים של Google Cloud . חריגה מהמכסות של הפרויקט או של האזור עלולה לגרום לכשלים ביצירת האשכול.

  • מכסות נפוצות של Managed Service for Apache Spark שצריך לבדוק:
    • ‫CPUs (אזורי)
    • ‫DISKS_TOTAL_GB (אזורי)
    • ‫IN_USE_ADDRESSES (אזורית לכתובות IP פנימיות, גלובלית לכתובות IP חיצוניות)
    • מכסות של Dataproc API, כמו ClusterOperationRequestsPerMinutePerProjectPerRegion

טיפים לפתרון בעיות:

  • בדיקת המכסות: נכנסים לדף IAM & Admin > IAM במסוף Google Cloud . מסננים לפי "Service" עבור "Compute Engine API" ו-"Dataproc API".
  • בודקים את השימוש לעומת המגבלה: מזהים מכסות שהגיעו למגבלה או קרובות אליה.
  • במקרה הצורך, מבקשים להגדיל את המכסה.

בעיות בהגדרת הרשת

בעיות בהגדרות הרשת, כמו הגדרות שגויות של רשת VPC, של רשת משנה, של חומת אש או של DNS, הן סיבה נפוצה לכשלים ביצירת אשכולות. מכונות של אשכולות צריכות להיות מסוגלות לתקשר זו עם זו ועם ממשקי Google API.

  • רשת VPC ותת-רשת:
    • מוודאים שרשת ה-VPC ורשת המשנה של האשכול קיימות ומוגדרות בצורה נכונה.
    • מוודאים שלרשת המשנה יש טווח מספיק של כתובות IP זמינות.
  • גישה פרטית ל-Google (PGA): אם למכונות הווירטואליות באשכול יש כתובות IP פנימיות והן צריכות להגיע לממשקי Google API בשביל Cloud Storage,‏ Cloud Logging ופעולות אחרות, ודאו שהגישה הפרטית ל-Google מופעלת ברשת המשנה. כברירת מחדל, אשכולות של Managed Service for Apache Spark שנוצרו עם גרסאות אימג' 2.2 ואילך מקצים מכונות וירטואליות עם כתובות IP פנימיות בלבד, כשהגישה הפרטית ל-Google מופעלת ברשת המשנה האזורית של האשכול.
  • ‫Private Service Connect ‏(PSC): אם אתם משתמשים ב-Private Service Connect כדי לגשת ל-Google APIs, ודאו שנקודות הקצה של Private Service Connect מוגדרות בצורה נכונה ל-Google APIs ש-Managed Service for Apache Spark תלוי בהם, כמו dataproc.googleapis.com,‏ storage.googleapis.com,‏ compute.googleapis.com ו-logging.googleapis.com. רשומות ה-DNS של ממשקי ה-API צריכות להפנות לכתובות IP פרטיות. חשוב לזכור שגם אם משתמשים ב-Private Service Connect, עדיין צריך להשתמש בקישור בין רשתות VPC שכנות כדי לתקשר עם רשתות VPC אחרות שמנוהלות על ידי הלקוח.
  • קישור (peering) בין רשתות VPC: אם האשכול מתקשר עם משאבים ברשתות VPC אחרות, כמו פרויקטים מארחים של VPC משותף או רשתות VPC אחרות של לקוחות, צריך לוודא שקישור ה-VPC מוגדר בצורה נכונה ושהנתיבים מופצים.
  • כללי חומת אש:

    • כללי ברירת מחדל: מוודאים שכללי ברירת המחדל של חומת האש, כמו allow-internal או allow-ssh, לא מגבילים מדי.
    • כללים בהתאמה אישית: אם יש כללים בהתאמה אישית לחומת האש, צריך לוודא שהם מאפשרים את נתיבי התקשורת הנדרשים:

      • תקשורת פנימית בתוך האשכול (בין הצמתים -m ו--w).
      • תעבורת נתונים יוצאת מהמכונות הווירטואליות של האשכול לממשקי Google API, באמצעות כתובות IP ציבוריות או שער אינטרנט, גישה פרטית ל-Google או נקודות קצה של Private Service Connect.

      • תנועה לכל מקורות נתונים או שירותים חיצוניים שהמשימות שלכם תלויות בהם.

  • פענוח DNS: מוודאים שהמכונות באשכול יכולות לפענח בצורה נכונה את שמות ה-DNS של Google APIs ושל כל שירות פנימי או חיצוני.

טיפים לפתרון בעיות:

  • בדיקת הגדרות הרשת: בודקים את ההגדרות של רשת ה-VPC ורשת המשנה שבהן האשכול נפרס.
  • בדיקת הכללים של חומת האש: בודקים את הכללים של חומת האש ברשת ה-VPC או בפרויקט המארח של ה-VPC המשותף.
  • בדיקת הקישוריות: מפעילים מכונה וירטואלית זמנית של Compute Engine ברשת המשנה של האשכול, ומבצעים את הפעולות הבאות:
    • ‫ping או curl לדומיינים חיצוניים של Google API, כמו storage.googleapis.com.
    • ‫nslookup כדי לאמת את פענוח ה-DNS לכתובות ה-IP הצפויות (גישה פרטית ל-Google או Private Service Connect).
    • מריצים Google Cloud בדיקות קישוריות כדי לאבחן נתיבים ממכונה וירטואלית לבדיקה לנקודות קצה רלוונטיות.

כשלים בפעולות אתחול

פעולות אתחול של Managed Service for Apache Spark הן סקריפטים שפועלים במכונות הווירטואליות של האשכול במהלך יצירת האשכול. שגיאות בסקריפטים האלה יכולות למנוע את הפעלת האשכול.

טיפים לפתרון בעיות:

  • בדיקת היומנים כדי לאתר שגיאות בפעולות אתחול: מחפשים ב-Cloud Logging רשומות ביומן שקשורות ל-init-actions או ל-startup-script במכונות של האשכול.
  • בדיקת הנתיבים וההרשאות של הסקריפטים: מוודאים שהסקריפטים של פעולות האתחול נמצאים במיקום הנכון ב-Cloud Storage, ושלחשבון השירות של ה-VM באשכול יש את התפקיד Storage Object Viewer שנדרש כדי לקרוא סקריפטים של Cloud Storage.
  • ניפוי באגים בלוגיקה של הסקריפט: בודקים את הלוגיקה של הסקריפט במכונה וירטואלית נפרדת של Compute Engine שמדמה את סביבת האשכול כדי לזהות שגיאות. מוסיפים לסקריפט רישום מפורט ביומן.

זמינות המשאבים באזור (מחסור במלאי)

מדי פעם, סוג מכונה או משאב באזור או בתחום מסוימים לא זמינים באופן זמני (מחסור במלאי). בדרך כלל, זה גורם לשגיאות RESOURCE_EXHAUSTED שלא קשורות לבעיות במכסות של הפרויקט.

טיפים לפתרון בעיות:

  • נסו אזור אחר: נסו ליצור את האשכול באזור אחר באותו מחוז, או במחוז אחר.
  • שימוש במיקום Auto Zone: משתמשים בתכונה Auto Zone placement של Managed Service for Apache Spark כדי לבחור באופן אוטומטי אזור עם קיבולת.
  • שינוי סוג המכונה: אם אתם משתמשים בסוג מכונה מותאם אישית או מיוחד, נסו להשתמש במכונה לשימוש סטנדרטי (standard) כדי לבדוק אם זה פותר את הבעיה.

פנייה ל-Cloud Customer Care

אם אתם ממשיכים להיתקל בבעיות של כשל באשכול, פנו אל Cloud Customer Care. תארו את הבעיה באשכול ואת הפעולות שביצעתם כדי לפתור אותה. בנוסף, צריך לספק את הפרטים הבאים:

  • נתוני אבחון של אשכול
  • הפלט של הפקודה הבאה:
      gcloud dataproc clusters describe CLUSTER_NAME \
          --region=REGION
      
  • יומנים שיוצאו מהאשכול שנכשל.

שימוש בכלי gcpdiag

‫gcpdiag הוא כלי בקוד פתוח. זה לא מוצר של Google Cloud שנתמך באופן רשמי. אתם יכולים להשתמש בכלי gcpdiag כדי לזהות ולתקן בעיות בפרויקט Google Cloud. מידע נוסף זמין בפרויקט gcpdiag ב-GitHub.

הכלי gcpdiag עוזר לזהות את הבעיות הבאות ביצירת אשכולות של Managed Service for Apache Spark, באמצעות ביצוע הבדיקות הבאות:

  • שגיאות חוסר זמינות: הערכת היומנים ב-Logs Explorer כדי לגלות חוסר זמינות באזורים ובאזורי משנה.
  • מכסה לא מספיקה: בדיקת זמינות המכסה בפרויקט האשכול של Managed Service for Apache Spark.
  • הגדרת רשת לא מלאה: מריצה בדיקות קישוריות לרשת, כולל בדיקות של כללי חומת האש הנדרשים והגדרת כתובות IP חיצוניות ופנימיות. אם האשכול נמחק, הכלי gcpdiag לא יכול לבצע בדיקת קישוריות לרשת.
  • הגדרה שגויה של פרויקטים שונים: בדיקה של חשבונות שירות בפרויקטים שונים, ובדיקה של תפקידים נוספים ואכיפה של מדיניות הארגון.
  • חסרים תפקידי IAM ברשת VPC משותפת: אם האשכול של Managed Service for Apache Spark משתמש ברשת VPC משותפת, המערכת בודקת אם נוספו תפקידי חשבון השירות הנדרשים.
  • כשלים בפעולות אתחול: הערכת היומנים ב-Logs Explorer כדי לגלות כשלים וזמנים קצובים לתפוגה של סקריפטים של פעולות אתחול.

רשימה של שלבי gcpdiag, כולל שלבים ליצירת אשכולות, מופיעה במאמר שלבים ב-Managed Service for Apache Spark.

מריצים את הפקודה gcpdiag

אפשר להריץ את הפקודה gcpdiag מ-Cloud Shell במסוףGoogle Cloud או בתוך מאגר Docker.

מסוףGoogle Cloud

  1. משלימים את הפקודה הבאה ומעתיקים אותה.
  2. gcpdiag runbook managed-spark/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS
  3. פותחים את מסוף Google Cloud ומפעילים את Cloud Shell.
  4. פתיחת מסוף Cloud
  5. מדביקים את הפקודה שהועתקה.
  6. מריצים את הפקודה gcpdiag, שמורידה את קובץ האימג' של Docker‏ gcpdiag, ואז מבצעים בדיקות אבחון. אם רלוונטי, פועלים לפי ההוראות שמופיעות בפלט כדי לתקן את הבדיקות שנכשלו.

Docker

אתם יכולים להריץ את gcpdiag באמצעות wrapper שמפעיל את gcpdiag בקונטיינר של Docker. צריך להתקין את Docker או את Podman.

  1. מעתיקים את הפקודה הבאה ומריצים אותה בתחנת העבודה המקומית.
    curl https://gcpdiag.dev/gcpdiag.sh >gcpdiag && chmod +x gcpdiag
  2. מפעילים את הפקודה gcpdiag.
    ./gcpdiag runbook managed-spark/cluster-creation \
        --parameter project_id=PROJECT_ID \
        --parameter cluster_name=CLUSTER_NAME \
        --parameter OPTIONAL_FLAGS

הפרמטרים הזמינים למדריך ההפעלה הזה.

מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: מזהה הפרויקט שמכיל את המשאב
    • ‫CLUSTER_NAME: השם של אשכול היעד של Managed Service for Apache Spark בפרויקט
    • ‫OPTIONAL_PARAMETERS: מוסיפים אחד או יותר מהפרמטרים האופציונליים הבאים. חובה להשתמש בפרמטרים האלה אם האשכול נמחק.
      • ‫cluster_uuid: ה-UUID של אשכול היעד של Managed Service for Apache Spark בפרויקט
      • ‫service_account: חשבון השירות של ה-VM באשכול של Managed Service for Apache Spark
      • ‫subnetwork: הנתיב המלא של ה-URI של רשת המשנה של אשכול Managed Service for Apache Spark
      • internal_ip_only: True או False
      • ‫cross_project: מזהה הפרויקט האחר, אם באשכול של Managed Service for Apache Spark משתמשים בחשבון שירות של מכונה וירטואלית בפרויקט אחר

דגלים שימושיים:

  • ‫--universe-domain: אם רלוונטי, הדומיין של Trusted Partner Sovereign Cloud שמארח את המשאב
  • ‫--parameter או -p: פרמטרים של מדריך הפעלה

רשימה ותיאור של כל הדגלים של הכלי gcpdiag מופיעים בהוראות השימוש ב-gcpdiag.

המאמרים הבאים