סקירה כללית על Cloud Profiler
הבנת הביצועים של מערכות ייצור היא משימה קשה במיוחד. ניסיון למדוד את הביצועים בסביבות בדיקה בדרך כלל לא מצליח לשכפל את הלחצים על מערכת ייצור. לפעמים אפשר לבצע מיקרו-בנצ'מרקינג לחלקים באפליקציה, אבל בדרך כלל אי אפשר לשכפל את עומס העבודה וההתנהגות של מערכת ייצור.
פרופיל מתמשך של מערכות ייצור הוא דרך יעילה לגלות איפה נצרכים משאבים כמו מחזורי מעבד וזיכרון בזמן שהשירות פועל בסביבת העבודה שלו. אבל הפרופיילינג מוסיף עומס נוסף למערכת הייצור: כדי שהפרופיילינג יהיה דרך מקובלת לגלות דפוסים של צריכת משאבים, העומס הנוסף של הפרופיילינג צריך להיות קטן.
Cloud Profiler הוא כלי ליצירת פרופילים סטטיסטיים עם תקורה נמוכה, שאוסף באופן רציף נתונים על השימוש במעבד והקצאת הזיכרון מהאפליקציות שלכם בסביבת הייצור. הוא משייך את המידע הזה לקוד המקור שיצר אותו, ועוזר לכם לזהות את החלקים באפליקציה שצורכים הכי הרבה משאבים. הוא גם מספק תובנות לגבי מאפייני הביצועים של האפליקציות שלכם.
סוגי הפרופילים שזמינים
Cloud Profiler תומך בסוגים שונים של פרופילים בהתאם לשפה שבה נכתבה התוכנית. בטבלה הבאה מוצג סיכום של סוגי הפרופילים הנתמכים לפי שפה:
| סוג הפרופיל | המשך | Java | Node.js | Python |
|---|---|---|---|---|
| זמן CPU (מעבד) | Y | Y | Y | |
| Heap | Y | Y | Y | |
| זיכרון בערימה שהוקצה | Y | |||
| מחלוקת | Y | |||
| Threads | Y | |||
| זמן בפועל | Y | Y | Y |
מידע מלא על דרישות השפה וההגבלות מופיע בדף ההוראות של השפה. מידע נוסף על סוגי הפרופילים האלה זמין במאמר מושגים שקשורים ליצירת פרופילים.
הגדרות נתמכות
כשמגדירים את האפליקציה כך שתתעד נתוני פרופיל, צריך לכלול בה סוכן פרופילים ספציפי לשפה. בטבלה הבאה מפורטים הסביבות הנתמכות:
| סביבות | המשך | Java | Node.js | Python |
|---|---|---|---|---|
| Compute Engine | Y | Y | Y | Y |
| Google Kubernetes Engine | Y | Y | Y | Y |
| סביבה גמישה של App Engine | Y | Y | Y | Y |
| סביבה רגילה של App Engine | Y | Y | Y | Y |
| Managed Service for Apache Spark | Y | |||
| Dataflow | Y | Y | ||
| מחוץ ל Google Cloud | Y | Y | Y | Y |
בטבלה הבאה מפורטות מערכות ההפעלה הנתמכות:
| מערכות הפעלה | המשך | Java | Node.js | Python |
|---|---|---|---|---|
הטמעה של ספריית C רגילה ב-Linuxglibc |
Y | Y | Y | Y |
הטמעה של ספריית C רגילה ב-Linuxmusl |
Y | Y (אלפא) | Y | Y (אלפא) |
השפעה על הביצועים
Cloud Profiler יוצר פרופיל יחיד על ידי איסוף נתוני פרופיל, בדרך כלל למשך 10 שניות, כל דקה עבור מופע יחיד של השירות שהוגדר באזור יחיד של Compute Engine. לדוגמה, אם שירות GKE מריץ 10 רפליקות של פוד, אז בפרק זמן של 10 דקות נוצרים בערך 10 פרופילים, וכל פוד עובר פרופיל פעם אחת בערך. תקופת יצירת הפרופיל היא אקראית, ולכן יש וריאציות. מידע נוסף זמין במאמר בנושא איסוף פרופילים.
התקורה של פרופיל המעבד והקצאת זיכרון בערימה (heap allocation) בזמן איסוף הנתונים היא פחות מ-5%. התקורה, שמפוזרת על פני זמן הביצוע ועל פני כמה עותקים של שירות, היא בדרך כלל פחות מ-0.5 אחוז, ולכן זו אפשרות משתלמת לניתוח פרופילים שפועל תמיד במערכות ייצור.
רכיבים
Cloud Profiler מורכב מסוכן פרופילים שאוסף את הנתונים, ומממשק קונסולה ב- Google Cloudשמאפשר לכם להציג ולנתח את הנתונים שנאספו על ידי הסוכן.
סוכן ליצירת פרופילים
מתקינים את הסוכן במכונות הווירטואליות שבהן האפליקציה פועלת. הסוכן מגיע בדרך כלל כספרייה שמצורפת לאפליקציה כשמפעילים אותה. הסוכן אוסף נתוני פרופיל בזמן שהאפליקציה פועלת.
למידע על הפעלת סוכן Cloud Profiler, ראו:- יצירת פרופילים של אפליקציות Go
- יצירת פרופילים של אפליקציות Java
- יצירת פרופיל של אפליקציות Node.js
- יצירת פרופילים של אפליקציות Python
- יצירת פרופילים של אפליקציות שפועלות מחוץ ל- Google Cloud
ממשק הכלי לניתוח ביצועים (profiler)
אחרי שהסוכן אוסף נתוני פרופילים, אפשר להשתמש בממשק של Profiler כדי לראות את הקשר בין הנתונים הסטטיסטיים של השימוש במעבד ובזיכרון לבין אזורים באפליקציה.
נתוני הפרופיל נשמרים למשך 30 יום, כך שאפשר לנתח את נתוני הביצועים לתקופות של עד 30 הימים האחרונים. אפשר להוריד פרופילים לאחסון לטווח ארוך.
מכסות ומגבלות
מידע על הצגה וניהול של המכסות ב-Profiler זמין במאמר מכסות ומגבלות.
אבטחת מידע
Cloud Profiler הוא שירות שנתמך על ידי VPC Service Controls. מידע נוסף זמין במסמכי התיעוד של VPC Service Controls.
מנתח נתונים
אחרי ש-Profiler אוסף נתונים, אפשר להציג ולנתח את הנתונים האלה באמצעות הממשק של Profiler.
נכנסים לדף Profiler במסוף Google Cloud :
אפשר גם להשתמש בסרגל החיפוש כדי למצוא את הדף הזה.