CPU Ready Time – מההתחלה ועד הסוף

CPU Ready time הינו אחד ה-counters החשובים בניטור של הסביבה הוירטואלית.

בהגדרה זאת כמות הזמן שמכונה וירטואלית מוכנה ורוצה לרוץ אבל מסיבה כזאת או אחרת לא מקבלת מ-ESX את משאבי המעבד שהיא ביקשה.

ממסמכים ומאמרים שונים אפשר ללמוד מהם הערכים שנחשבים לתקינים והלא תקינים של CPU Ready:

עד 5% – תקין (תלוי גם ברגישות של אפליקציה ספציפית)

5-10% – סביר להניח שיש פגיעה בביצועים של המכונה ושל האפליקציות

מעל 10% – אפשר להגיד כמעט בוודאות שהמכונה סובלת

איפה ניתן לראות את הערך של הפרמטר?

1. ניתן לפתוח esxtop ולראות את הערך של CPU Ready – %RDY:

הערה: שימו לב שב-esxtop הערך של %RDY זהו סכום של Ready Time של כל המעבדים של המכונה, לכן צריך לחלק את הערך של ה-counter במספר המעבדים שמוקצים לאותה מכונה וירטואלית כדי לדעת האם היא סובלת באמת. אגב, כדי לדעת כמה מעבדים יש ל-VM מתוך esxtop, צריך להסתכל על עמודת NWLD – מהערך בעמודה מחסירים 3 ומקבלים את מספר ה-vCPUs.

הכלי טוב לבדיקות real-time בעיקר (קיימת גם אפשרות להריץ אותו גם ב-batch mode לאורך זמן) ובעזרתו ניתן לתפוס peaks רגעיים, מה שלא אפשרי בכלים אחרים.

2. עכשיו , אבל אם נפתח Performance Charts ב-vSphere Client ונסתכל על Ready Time, נראה את התמונה הבאה:

רואים 342ms. מה זה אומר? טוב \ לא טוב? כמה אחוז זה? ואחוז ממה בכלל?

אז ככה:

vSphere Client מציג את ה-Ready Time ב-ms מתוך X ms כשה-X הוא מרווח הזמן בין דגימה לדגימה.

למשל, בדוגמא שלנו מדובר בגרף של Real-Time, לכן כל נקודה בגרף מייצגת דגימה של 20 שניות או 20000 מילישניות. כלומר בחלון הזמן של 20000 מילישניות השרת חיכה למעבד בסה"כ (לא ברצף!) 342 מילישניות. לכן כדי להגיע לאחוזים נחלק את 342 ב-20000 ונכפיל ב-100. יוצא 1.71% – מה שאומר שהערך הינו תקין.

עכשיו, בגרפים האחרים (Past Day, Week וכו') חלון הזמן משתנה:

  • Real-time: 20 seconds –> 20,000 ms
  • Past Day: 5 minutes (300 seconds –> 300, 000 ms)
  • Past Week: 30 minutes (1800 seconds – 1,800,000 ms)
  • Past Month: 2 hours (7200 seconds –> 7,200,000 ms)
  • Past Year: 1 day (86400 seconds –> 86,400,000 ms)

מסיבה הזאת הערך עצמו לא מספיק כדי להבין האם יש בעיה, חייבים לדעת גם מה מרווח הזמן. לדוגמא, אם אומרים לכם: "יש לי CPU Ready מטורף, 30000!", צריך לשאול באיזה גרף ראו את זה. בסוף יתברר, שזה היה הגרף השבועי ובתכלס ה-ready time הוא 1.66% שזה תקין לחלוטין.

להלן הנוסחאות המקוצרות להמרת ה-ms ל-%:

  • Real-time: CPU ready value / 200
  • Past Day: CPU ready value / 3000
  • Past Week: CPU ready value / 18000
  • Past Month: CPU ready value / 72000
  • Past Year: CPU ready value / 864000

אם אין לכם כח לחשב, הכנתי טבלה שתעזור להבין אם הערך תקין \ לא תקין:

Interval                    5%                        10%

Real-time                 1000 ms               2000 ms

Past Day                  15,000 ms           30,000 ms

Past Week                90,000 ms          180,000 ms

Past Month              360,000 ms        720,000 ms

Past Year                 4,320,000 ms    8,640,000 ms

Performance Charts מאפשרים לראות את הנתונים בצורה ויזואלית וגם את הנתונים בעבר. שימו לב שה-vCenter מבצע roll up של סטטיסטיקות על ידי חישוב ממוצעים ולכן הגרפים "מתיישרים" ככל שמסתכלים על גרף ישן יותר וה-peaks נעלמים.

3. אופציה נוספת הינה vCOps. בו ניתן לראות את ה-ready time גם באחוזים וגם במילישניות. אין יותר צורך לחשב.

בנוסף, vCOps לא מבצע roll up ולכן ניתן לראות את הערכים ברזולוציה של 5 דקות כמה זמן אחורה שאתם רוצים!

הרעיון המקורי היה לכתוב פוסט קצר שמסביר איך להמיר cpu ready מ-ms ל-%, אבל איכשהו זה התחיל לזרום ויצא פוסט ארוך במיוחד.

מקור: Converting between CPU summation and CPU % ready values

מיכאל.

9 Replies to “CPU Ready Time – מההתחלה ועד הסוף”

  1. Pingback: vIrtuaLization IL » Blog Archive » כמה לינקים חדשים בעמוד Performance

להגיב על נופר לבטל

האימייל לא יוצג באתר. שדות החובה מסומנים *

*