בדף הזה מוסבר איך מחשבים את מדדי השימוש במשאבים של צי הרכבים והצוות, ומופיעים בו טיפים לשימוש במדדים האלה כדי לייעל את השימוש במשאבים.
אפשר לראות את המדדים האלה בלוחות הבקרה הבאים:
המדדים האלה מתארים את מידת היעילות של השימוש במשאבים הזמינים פיזית שאתם משלמים עליהם או במשאבים שאתם מקצים בחומרה מקומית. המידע הזה מאפשר לכם להבין את היעילות של ניצול המשאבים בקנה מידה גדול, ברמת הצי או הצוות. המידע הזה יכול לעזור לכם לבצע אופטימיזציה של גודל האשכול והקצאת המשאבים באשכולות ובמרחבי השמות, או לבצע אופטימיזציה של האופן שבו צוותי הפיתוח של האפליקציות מבקשים ומשייכים משאבים.
שימוש במדדי ניצול משאבים
הטיפים הבאים יעזרו לכם להשתמש במדדים במסוף כדי לזהות בעיות ולטפל בהן:
- אם בגרף Total CPU/Memory/Disk utilization (השימוש הכולל במעבד, בזיכרון ובדיסק) של צי המכונות מופיע שימוש גבוה או נמוך באופן לא צפוי ב-7 הימים האחרונים, תמיד כדאי לבדוק את הגרף התואם CPU/Memory/Disk utilization by fleet (השימוש במעבד, בזיכרון ובדיסק לפי צי מכונות) כדי להעריך אם השימוש הלא צפוי הוא קבוע או שהוא נגרם מעליות פתאומיות בשימוש.
- אם Top CPU/Memory/Disk utilization by cluster מצביע על אשכולות ספציפיים שמתנהגים באופן שונה מהשאר, כדאי לבדוק את האשכולות האלה באופן מעמיק יותר. אם אפשר, כדאי לשנות את הגודל של האשכולות.
- אם בגרף Top CPU/Memory/Disk utilization by namespace (השימוש הכי גבוה במעבד, בזיכרון ובדיסק לפי מרחב שמות) מופיע זינוק לא צפוי במהלך שבעת הימים האחרונים, כדאי לבדוק אם עומס עבודה ספציפי גורם לזינוק. פתרון אפשרי הוא להפיץ מחדש את עומסי העבודה בין המשאבים.
- השימוש במעבד, בזיכרון ובדיסק לפי צי מאפשר לכם לראות את היחס בין המשאבים שהוקצו לבין המשאבים שנדרשים. הבדל גדול בין שני הערכים יכול להצביע על כך שצוותי האפליקציות מבקשים ומזמינים יותר מדי משאבים.
הסבר על מדדי ניצול משאבים
המדדים הבאים מופיעים בלוחות הבקרה של סקירת GKE, צי וצוות, ומחושבים באמצעות מידע מ-Cloud Monitoring באשכולות של הצי.
אפשר לראות מדדים ברמת הצי בלוחות הבקרה של GKE ושל סקירת הצי. מדדים ברמת הצוות זמינים בלוחות הבקרה של GKE ושל סקירת הצוות.
מדדי מעבד (CPU)
- Total CPU utilization:
- במדדים ברמת הצי, המערכת מחשבת ממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין משאבים שניתנים להקצאה לבין משאבים בשימוש בכל האשכולות שרשומים לצי.
- Allocatable: כמות המעבד (CPU) שהוקצתה לכל הצמתים בכל האשכולות שרשומים ב-Fleet. החישוב בוצע לפי המדד
node/cpu/allocatable_cores. - בשימוש: כמות ה-CPU שנעשה בה שימוש בכל מאגרי התגים בכל האשכולות שרשומים בצי. החישוב בוצע לפי המדד
container/cpu/core_usage_time.
- Allocatable: כמות המעבד (CPU) שהוקצתה לכל הצמתים בכל האשכולות שרשומים ב-Fleet. החישוב בוצע לפי המדד
- במרכז הבקרה של הצוות Monitoring, מוצג ממוצע של כל הנקודות בזמן עבור חלון זמן נתון, כאשר נקודה בזמן היא יחס בין המשאבים המבוקשים לבין המשאבים שבשימוש בכל מרחבי השמות שמשויכים להיקף הצוות.
- נדרש: כמות המעבד שנדרשת על ידי כל המאגדים בכל מרחבי השמות שמשויכים להיקף של צוות.
החישוב בוצע לפי המדד
container/cpu/request_cores. - בשימוש: כמות ה-CPU שנעשה בה שימוש בכל הקונטיינרים בכל מרחבי השמות שמשויכים להיקף הצוות. מחושב מהמדד
container/cpu/core_usage_time.
- נדרש: כמות המעבד שנדרשת על ידי כל המאגדים בכל מרחבי השמות שמשויכים להיקף של צוות.
החישוב בוצע לפי המדד
- במדדים ברמת הצי, המערכת מחשבת ממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין משאבים שניתנים להקצאה לבין משאבים בשימוש בכל האשכולות שרשומים לצי.
- ניצול המעבד (CPU) לפי צי או צוות:
- ברמת הצי, הקשר בין המשאבים שהוקצו, המשאבים שהתבקשו והמשאבים שבשימוש.
- בשימוש: כמות ה-CPU שנעשה בה שימוש בכל מאגרי התגים בכל האשכולות שרשומים בצי. החישוב בוצע לפי המדד
container/cpu/core_usage_time. - Requested: כמות המעבד שנדרשת על ידי כל המאגדים בכל האשכולות שרשומים בצי. מחושב מהמדד
container/cpu/request_cores. - Allocatable: כמות המעבד (CPU) שהוקצתה לכל הצמתים בכל האשכולות שרשומים ב-Fleet. החישוב בוצע לפי המדד
node/cpu/allocatable_cores.
- בשימוש: כמות ה-CPU שנעשה בה שימוש בכל מאגרי התגים בכל האשכולות שרשומים בצי. החישוב בוצע לפי המדד
- ברמת הצוות, הקשר בין מגבלת המשאבים לבין המשאבים שהיו בשימוש והמשאבים המבוקשים.
- בשימוש: כמות ה-CPU שנעשה בה שימוש בכל הקונטיינרים בכל מרחבי השמות שמשויכים להיקף הצוות. מחושב מהמדד
container/cpu/core_usage_time. - נדרש: כמות המעבד שנדרשת על ידי כל המאגדים בכל מרחבי השמות שמשויכים להיקף של צוות.
החישוב בוצע לפי המדד
container/cpu/request_cores. - מגבלה: כמות ה-CPU המקסימלית שזמינה לכל הקונטיינרים בכל מרחבי השמות שמשויכים להיקף הצוות.
החישוב בוצע לפי המדד
container/cpu/limit_cores.
- בשימוש: כמות ה-CPU שנעשה בה שימוש בכל הקונטיינרים בכל מרחבי השמות שמשויכים להיקף הצוות. מחושב מהמדד
- ברמת הצי, הקשר בין המשאבים שהוקצו, המשאבים שהתבקשו והמשאבים שבשימוש.
- ניצול המשאבים של יחידת העיבוד המרכזית (CPU) באשכול: רשימת האשכולות ממוינת לפי ממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין המשאבים שניתן להקצות לבין המשאבים שנמצאים בשימוש באשכול מסוים.
- ניתן להקצאה: כמות המעבד (CPU) שהוקצתה לכל הצמתים באשכול. החישוב בוצע לפי המדד
node/cpu/allocatable_cores. - בשימוש: כמות ה-CPU שכל המאגדים משתמשים בה באשכול.
החישוב בוצע לפי המדד
container/cpu/core_usage_time.
- ניתן להקצאה: כמות המעבד (CPU) שהוקצתה לכל הצמתים באשכול. החישוב בוצע לפי המדד
- ניצול המעבד הכי גבוה לפי מרחב שמות: רשימת מרחבי שמות שממוינת לפי ממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין המשאבים שהיו בשימוש לבין המשאבים שהתבקשו עבור מרחב שמות מסוים.
- בשימוש: כמות ה-CPU שנמצאת בשימוש של כל הקונטיינרים במרחב שמות.
החישוב בוצע לפי המדד
container/cpu/core_usage_time. - Requested: כמות המעבד שכל הקונטיינרים במרחב השמות מבקשים. החישוב בוצע לפי המדד
container/cpu/request_cores.
- בשימוש: כמות ה-CPU שנמצאת בשימוש של כל הקונטיינרים במרחב שמות.
החישוב בוצע לפי המדד
מדדי זיכרון
- השימוש הכולל בזיכרון:
- במדדים ברמת הצי, הכוונה היא לממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין משאבים שניתנים להקצאה לבין משאבים בשימוש בכל האשכולות ששייכים לצי.
- Allocatable: כמות הזיכרון שהוקצתה לכל הצמתים בכל האשכולות שרשומים בצי. מחושב מהמדד
node/memory/allocatable_byte. - בשימוש: כמות הזיכרון שלא ניתן להוציא מהמטמון שנעשה בו שימוש בכל המאגדים בכל האשכולות שרשומים בצי.
החישוב בוצע לפי המדד
container/memory/used_bytes.
- Allocatable: כמות הזיכרון שהוקצתה לכל הצמתים בכל האשכולות שרשומים בצי. מחושב מהמדד
- במדדים ברמת הצוות, הכוונה היא לממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין משאבים מבוקשים למשאבים בשימוש בכל מרחבי השמות ששייכים להיקף הצוות.
- Requested: כמות הזיכרון שכל המאגדים מבקשים בכל מרחבי השמות שמשויכים להיקף.
החישוב בוצע לפי המדד
container/memory/request_bytes. - Used: כמות הזיכרון שלא ניתן להוציא מהמטמון שנעשה בו שימוש בכל מאגרי התגים בכל מרחבי השמות שמשויכים להיקף. החישוב בוצע לפי המדד
container/memory/used_bytes.
- Requested: כמות הזיכרון שכל המאגדים מבקשים בכל מרחבי השמות שמשויכים להיקף.
החישוב בוצע לפי המדד
- במדדים ברמת הצי, הכוונה היא לממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין משאבים שניתנים להקצאה לבין משאבים בשימוש בכל האשכולות ששייכים לצי.
- ניצול הזיכרון לפי צי/צוות:
- ברמת הצי, הקשר בין המשאבים שהוקצו, המשאבים שהתבקשו והמשאבים שבשימוש.
- בשימוש: כמות הזיכרון שלא ניתן להוציא מהמטמון שנעשה בו שימוש בכל המאגדים בכל האשכולות שרשומים בצי.
החישוב בוצע לפי המדד
container/memory/used_bytes. - נדרש: כמות הזיכרון שנדרשת על ידי כל המאגדים בכל האשכולות שרשומים בצי. מחושב מהמדד
container/memory/request_bytes. - Allocatable: כמות הזיכרון שהוקצתה לכל הצמתים בכל האשכולות שרשומים בצי. מחושב מהמדד
node/memory/allocatable_byte.
- בשימוש: כמות הזיכרון שלא ניתן להוציא מהמטמון שנעשה בו שימוש בכל המאגדים בכל האשכולות שרשומים בצי.
החישוב בוצע לפי המדד
- ברמת הצוות, הקשר בין מגבלת המשאבים לבין המשאבים שהיו בשימוש והמשאבים המבוקשים.
- Used: כמות הזיכרון שלא ניתן להוציא מהמטמון שנעשה בו שימוש בכל מאגרי התגים בכל מרחבי השמות שמשויכים להיקף. החישוב בוצע לפי המדד
container/memory/used_bytes. - Requested: כמות הזיכרון שכל המאגדים מבקשים בכל מרחבי השמות שמשויכים להיקף.
החישוב בוצע לפי המדד
container/memory/request_bytes. - מגבלה: כמות הזיכרון המקסימלית שזמינה לכל הקונטיינרים בכל מרחבי השמות שמשויכים להיקף. החישוב בוצע לפי המדד
container/memory/limit_bytes.
- Used: כמות הזיכרון שלא ניתן להוציא מהמטמון שנעשה בו שימוש בכל מאגרי התגים בכל מרחבי השמות שמשויכים להיקף. החישוב בוצע לפי המדד
- ברמת הצי, הקשר בין המשאבים שהוקצו, המשאבים שהתבקשו והמשאבים שבשימוש.
- השימוש הכי גבוה בזיכרון לפי אשכול: רשימת אשכולות ממוינת לפי ממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין משאבים שניתנים להקצאה לבין משאבים שנמצאים בשימוש באשכול מסוים.
- ניתן להקצאה: כמות הזיכרון שהוקצתה לכל הצמתים באשכול. החישוב בוצע לפי המדד
node/memory/allocatable_byte. - בשימוש: כמות הזיכרון שלא ניתן להוציא מהשימוש שמשמש את כל המאגדים באשכול. החישוב בוצע לפי המדד
container/memory/used_bytes.
- ניתן להקצאה: כמות הזיכרון שהוקצתה לכל הצמתים באשכול. החישוב בוצע לפי המדד
- שימוש בזיכרון לפי מרחב שמות: רשימת מרחבי שמות שממוינת לפי ממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין המשאבים שהיו בשימוש לבין המשאבים שהתבקשו עבור מרחב שמות מסוים.
- בשימוש: כמות הזיכרון שלא ניתן להוציא מהשימוש שמשמש את כל המאגדים במרחב שמות. החישוב בוצע לפי המדד
container/memory/used_bytes. - נדרש: כמות הזיכרון שנדרשת לכל מאגרי התגים במרחב שמות. החישוב בוצע לפי המדד
container/memory/request_bytes.
- בשימוש: כמות הזיכרון שלא ניתן להוציא מהשימוש שמשמש את כל המאגדים במרחב שמות. החישוב בוצע לפי המדד
מדדי דיסק
- Total disk utilization:
- במדדים ברמת הצי, הכוונה היא לממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין משאבים שניתנים להקצאה לבין משאבים שנמצאים בשימוש בכל האשכולות ששייכים לצי.
- ניתן להקצאה: כמות האחסון הזמני המקומי שהוקצה לכל הצמתים בכל האשכולות שרשומים בצי.
החישוב בוצע לפי המדד
node/ephemeral_storage/allocatable_bytes. - בשימוש: כמות האחסון המקומי הזמני שמשמש את כל מאגרי התגים בכל האשכולות שרשומים בצי.
החישוב בוצע לפי המדד
container/ephemeral_storage/used_bytes.
- ניתן להקצאה: כמות האחסון הזמני המקומי שהוקצה לכל הצמתים בכל האשכולות שרשומים בצי.
החישוב בוצע לפי המדד
- במדדים ברמת הצוות, הכוונה היא לממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין משאבים מבוקשים למשאבים בשימוש בכל מרחבי השמות ששייכים להיקף הצוות.
- נדרש: כמות האחסון המקומי הזמני שנדרשת על ידי כל המאגרי בכל מרחבי השמות שמשויכים להיקף. החישוב בוצע לפי המדד
container/ephemeral_storage/request_bytes. - בשימוש: נפח האחסון המקומי הזמני שמשמש את כל המאגדים בכל מרחבי השמות שמשויכים להיקף. החישוב בוצע לפי המדד
container/ephemeral_storage/used_bytes.
- נדרש: כמות האחסון המקומי הזמני שנדרשת על ידי כל המאגרי בכל מרחבי השמות שמשויכים להיקף. החישוב בוצע לפי המדד
- במדדים ברמת הצי, הכוונה היא לממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא יחס בין משאבים שניתנים להקצאה לבין משאבים שנמצאים בשימוש בכל האשכולות ששייכים לצי.
- ניצול הדיסק לפי צי או צוות:
- ברמת הצי, הקשר בין המשאבים שהוקצו, המשאבים שהתבקשו והמשאבים שבשימוש.
- בשימוש: כמות האחסון המקומי הזמני שמשמש את כל מאגרי התגים בכל האשכולות שרשומים בצי.
החישוב בוצע לפי המדד
container/ephemeral_storage/used_bytes. - נדרש: כמות האחסון הזמני המקומי שנדרשת על ידי כל הקונטיינרים בכל האשכולות שרשומים בצי. החישוב בוצע לפי המדד
container/ephemeral_storage/request_bytes. - ניתן להקצאה: כמות האחסון הזמני המקומי שהוקצה לכל הצמתים בכל האשכולות שרשומים בצי.
החישוב בוצע לפי המדד
node/ephemeral_storage/allocatable_bytes.
- בשימוש: כמות האחסון המקומי הזמני שמשמש את כל מאגרי התגים בכל האשכולות שרשומים בצי.
החישוב בוצע לפי המדד
- ברמת הצוות, הקשר בין מגבלת המשאבים לבין המשאבים שהיו בשימוש והמשאבים המבוקשים.
- בשימוש: נפח האחסון המקומי הזמני שמשמש את כל המאגדים בכל מרחבי השמות שמשויכים להיקף. החישוב בוצע לפי המדד
container/ephemeral_storage/used_bytes. - נדרש: כמות האחסון המקומי הזמני שנדרשת על ידי כל המאגרי בכל מרחבי השמות שמשויכים להיקף. החישוב בוצע לפי המדד
container/ephemeral_storage/request_bytes. - מגבלה: נפח האחסון המקסימלי הזמני המקומי שזמין לכל הקונטיינרים בכל מרחבי השמות שמשויכים להיקף. החישוב בוצע לפי המדד
container/ephemeral_storage/limit_bytes.
- בשימוש: נפח האחסון המקומי הזמני שמשמש את כל המאגדים בכל מרחבי השמות שמשויכים להיקף. החישוב בוצע לפי המדד
- ברמת הצי, הקשר בין המשאבים שהוקצו, המשאבים שהתבקשו והמשאבים שבשימוש.
- ניצול הדיסק הכולל לפי אשכול: רשימת האשכולות ממוינת לפי ממוצע של כל הנקודות בזמן עבור חלון זמן נתון, כאשר נקודה בזמן היא יחס בין משאבים שניתנים להקצאה לבין משאבים בשימוש באשכול מסוים.
- ניתן להקצאה: כמות האחסון המקומי הזמני שהוקצה לכל הצמתים באשכול. החישוב בוצע לפי המדד
node/ephemeral_storage/allocatable_bytes. - בשימוש: נפח האחסון המקומי הזמני שמשמש את כל המאגדים באשכול. החישוב בוצע לפי המדד
container/ephemeral_storage/used_bytes.
- ניתן להקצאה: כמות האחסון המקומי הזמני שהוקצה לכל הצמתים באשכול. החישוב בוצע לפי המדד
- השימוש בדיסק לפי מרחב שמות: רשימת מרחבי שמות שממוינת לפי ממוצע של כל הנקודות בזמן בחלון זמן נתון, כאשר נקודה בזמן היא היחס בין המשאבים שהיו בשימוש לבין המשאבים שהתבקשו עבור מרחב שמות מסוים.
- בשימוש: כמות האחסון המקומי הזמני שמשמש את כל המאגדים במרחב שמות. החישוב בוצע לפי המדד
container/ephemeral_storage/used_bytes. - נדרש: כמות האחסון המקומי הזמני שנדרשת על ידי כל המאגדים במרחב שמות. החישוב בוצע לפי המדד
container/ephemeral_storage/request_bytes.
- בשימוש: כמות האחסון המקומי הזמני שמשמש את כל המאגדים במרחב שמות. החישוב בוצע לפי המדד
חלוקת השגיאות לפי מרחב שמות (ברמת הצוות בלבד)
רשימת מרחבי השמות ממוינת לפי המספר הגבוה ביותר של יומני שגיאות בחלון זמן נתון. היומנים נאספים מ-Cloud Logging.
הפעלה מחדש של חלוקת הספירות לפי מרחב שמות (ברמת הצוות בלבד)
רשימת מרחבי שמות ממוינת לפי המספר הכי גבוה של הפעלות מחדש של מאגרי תגים בחלון זמן נתון. החישוב מתבצע לפי המדד container/restart_count.
פתרון בעיות
טעינת המדדים עבור אשכולות חדשים נכשלת
אם יצרתם אשכולות חדשים, יכול להיות שתראו את הסמל No Data בכל לוח הבקרה Monitoring, או שתראו מדדים, בהתאם לחלון הזמן שבחרתם. לדוגמה, אם יצרתם אשכול בשעה האחרונה ובחרתם חלון זמן של שעה או 6 שעות, יכול להיות שבלוח הבקרה יוצגו חלק מהמדדים של עומסי העבודה. עם זאת, אם תבחרו חלון זמן של יום אחד או יותר, יכול להיות שהסמל No data יוצג בכל לוח הבקרה.
הסיבה לכך היא ש-Cloud Monitoring אוסף נתונים בתקופות שונות (מרווחי זמן) עבור חלונות זמן שונים. בחלונות זמן של שעה אחת ושל 6 שעות, הנתונים נאספים במרווחי זמן של דקה אחת. לכן, אם האשכול קיים כבר כמה דקות, תוכלו לראות מדדים עבור חלונות הזמן האלה.
בחלונות זמן של יום אחד ושבוע אחד, מערכת Cloud Monitoring אוספת נתונים במרווחי זמן של שעה. אם האשכול קיים פחות משעה, יכול להיות שלא יוצגו נתונים עבור חלונות הזמן האלה.
אם השגיאה הזו מופיעה, כדאי לבדוק את לוח הבקרה אחרי שעובר עוד זמן מאז יצירת האשכול החדש.