בדף הזה מוסבר איך לנתח את ביצועי המעבד של צמתי אשכול Google Kubernetes Engine (GKE) באמצעות אירועים של יחידת מעקב אחר ביצועים (PMU).
הדף הזה מיועד לאדמינים של אשכולות שיש להם עומסי עבודה שרגישים לביצועים ורוצים לבדוק את הביצוע של עומסי העבודה שלהם ב-CPU בצמתים של GKE במהלך פיתוח, ניפוי באגים, השוואה בין ביצועים וניטור רציף.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
דרישות ומגבלות
כשמפעילים אירועי PMU, חשוב לשים לב לדרישות ולמגבלות הבאות:
- האשכול צריך להיות במצב רגיל.
- אם באשכול שלכם מופעלת הקצאת משאבים אוטומטית של צמתים, אי אפשר להפעיל אירועי 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רושמים את השם של
ZONECompute 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 אותחל.