בדף הזה מוסבר איך לנתח את ביצועי המעבד (CPU) של צמתי אשכול Google Kubernetes Engine (GKE) באמצעות אירועים של יחידת מעקב אחר ביצועים (PMU).
הדף הזה מיועד לאדמינים של אשכולות שיש להם עומסי עבודה שרגישים לביצועים ורוצים לבדוק את הביצוע של עומסי העבודה שלהם במעבד בצמתים של GKE במהלך פיתוח, ניפוי באגים, השוואה בין ביצועים וניטור רציף.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את gcloud CLI. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
דרישות ומגבלות
כשמפעילים אירועי PMU, חשוב לשים לב לדרישות ולמגבלות הבאות:
- האשכול צריך להיות במצב Standard.
- אם באשכול שלכם מופעלת הקצאת משאבים אוטומטית של צמתים, לא ניתן להפעיל אירועי 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 מופעל
כדי לוודא שה-PMU מופעל בצמתי האשכול, בודקים את הודעות הליבה.
מקבלים רשימה של הצמתים באשכול:
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רושמים את השם של אחד מהצמתים.
מקבלים את המיקום של הצומת ב-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.משתמשים ב-SSH כדי להתחבר לצומת של האשכול:
gcloud compute ssh NODE_NAME \ --zone=COMPUTE_ZONEמחליפים את
COMPUTE_ZONEבשם של אזור Compute Engine מהשלב הקודם.בודקים את הודעות הליבה:
sudo dmesg |grep -A10 -i "Performance"הפלט אמור להיראות כך:
[ 0.307634] Performance Events: generic architected perfmon, full- width counters, Intel PMU driver. # Several lines omittedהפלט הזה מציין שהדריבר של PMU אותחל.