בדף הזה מוסבר איך לנתח את ביצועי המעבד (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 מופעל בצמתי האשכול, בודקים את הודעות הליבה.
מקבלים רשימה של הצמתים באשכול:
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 מאותחל.