ניתוח הביצועים של המעבד באמצעות PMU

בדף הזה מוסבר איך לנתח את ביצועי המעבד (CPU) של צמתי אשכול Google Kubernetes Engine ‏(GKE) באמצעות אירועים של יחידת מעקב אחר ביצועים (PMU).

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

לפני שמתחילים

לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:

  • מפעילים את ממשק ה-API של Google Kubernetes Engine.
  • הפעלת Google Kubernetes Engine API
  • כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה gcloud components update כדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.

דרישות ומגבלות

כשמפעילים אירועים של PMU, חשוב לשים לב לדרישות ולמגבלות הבאות:

  • האשכול חייב להיות במצב רגיל.
  • אם באשכול שלכם מופעלת הקצאת צמתים אוטומטית (NAP), אי אפשר להפעיל אירועי PMU במאגרי צמתים שנוצרו באמצעות הקצאה אוטומטית. אם מפעילים הקצאת משאבים אוטומטית של צמתים אחרי שמפעילים אירועי PMU, זה לא משפיע על מאגרי צמתים קיימים.
  • מאגרי הצמתים באשכול חייבים להריץ סדרת מכונות שתומכת ב-PMU. מידע נוסף על סוגי המכונות הנתמכים זמין במאמר סדרות מכונות ופלטפורמות CPU נתמכות.

יצירת אשכול GKE

יוצרים אשכול עם אירועי PMU שמופעלים עבור מאגר הצמתים שמוגדר כברירת מחדל:

gcloud container clusters create CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --performance-monitoring-unit=PMU_LEVEL \
    --machine-type=MACHINE_TYPE

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

  • ‫CLUSTER_NAME: השם של האשכול החדש.
  • ‫COMPUTE_LOCATION: המיקום של Compute Engine של האשכול החדש.
  • ‫PMU_LEVEL: סוג האירועים של PMU לאיסוף. מידע נוסף זמין במאמר איך PMU פועל במאמרי העזרה של Compute Engine. הערכים הנתמכים הם:
    • ‫architectural: מאפשרת אירועי PMU ארכיטקטוניים שקשורים לאירועים של מטמון שאינו ברמה האחרונה (LLC).
    • ‫standard: כולל אירועים ארכיטקטוניים ומאפשר אירועי PMU מרכזיים, כולל אירועי מטמון L2.
    • ‫enhanced: כולל אירועים רגילים ומאפשר אירועים מקומיים מחוץ לליבת ה-CPU ולאירועי LLC PMU. האפשרות הזו זמינה רק במכונות וירטואליות עם מספר מסוים של מעבדים וירטואליים. מידע נוסף זמין בקטע מגבלות במאמרי העזרה של Compute Engine.
  • ‫MACHINE_TYPE: סוג המכונה של Compute Engine עבור הצמתים. רשימה של סוגי מכונות נתמכים מופיעה במאמר סדרות מכונות ופלטפורמות CPU נתמכות במסמכי התיעוד של Compute Engine.

אפשר גם ליצור מאגר צמתים חדש לאשכול קיים באמצעות הפקודה gcloud container node-pools create.

התחברות לאוסף

מגדירים את kubectl לתקשורת עם האשכול:

gcloud container clusters get-credentials CLUSTER_NAME \
    --location=COMPUTE_LOCATION

איך מוודאים שהתכונה 'ניהול הרשאות מרכזי' מופעלת

כדי לוודא שה-PMU מופעל בצמתי האשכול, בודקים את הודעות הליבה.

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

    kubectl get nodes
    

    הפלט אמור להיראות כך:

    NAME                                  STATUS   ROLES    AGE     VERSION
    gke-c1-default-pool-44be3e13-prr1     Ready    <none>   5d23h   v1.27.13-gke.1070000
    gke-c1-default-pool-7abc4a17-9dlg     Ready    <none>   2d21h   v1.27.13-gke.1070000
    gke-c1-default-pool-ed969ef6-4gzp     Ready    <none>   5d      v1.27.13-gke.1070000
    

    מקליטים את השם של אחד מהצמתים.

  2. מקבלים את המיקום של הצומת ב-Compute Engine:

    gcloud compute instances list --filter=NODE_NAME
    

    מחליפים את NODE_NAME בשם של צומת מהשלב הקודם.

    הפלט אמור להיראות כך:

    NAME                               ZONE           MACHINE_TYPE  PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    gke-c1-default-pool-44be3e13-prr1  us-central1-c  c4-standard-4     true         10.128.0.67  34.170.44.164  RUNNING
    

    רושמים את השם של ZONE ב-Compute Engine. בדוגמה הזו, זה us-central1-c.

  3. משתמשים ב-SSH כדי להתחבר לצומת של האשכול:

    gcloud compute ssh NODE_NAME \
        --zone=COMPUTE_ZONE
    

    מחליפים את COMPUTE_ZONE בשם של אזור Compute Engine מהשלב הקודם.

  4. בודקים את הודעות הליבה:

    sudo dmesg |grep -A10 -i "Performance"
    

    הפלט אמור להיראות כך:

    [    0.307634] Performance Events: generic architected perfmon, full-
    width counters, Intel PMU driver.
    # Several lines omitted
    

    הפלט הזה מציין שמנהל ההתקן של PMU מאותחל.

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