שימוש במדדים לאבחון זמן האחזור

בדף הזה מפורטים מדדי השהייה ש-Spanner מספק. אם יש זמן אחזור גבוה באפליקציה, אפשר להשתמש במדדים האלה כדי לאבחן את הבעיה ולפתור אותה.

אפשר לראות את המדדים האלה במסוף Google Cloud ובמסוף Cloud Monitoring.

סקירה כללית של מדדי זמן ההמתנה לתגובה

מדדי זמן האחזור של Spanner מודדים כמה זמן לוקח לשירות Spanner לעבד בקשה. המדד הזה מתעד את כמות הזמן שחלפה בפועל, ולא את כמות הזמן של המעבד שנעשה בו שימוש ב-Spanner.

מדדי השהייה האלה לא כוללים השהיה שמתרחשת מחוץ ל-Spanner, כמו השהיית רשת או השהיה בשכבת האפליקציה. כדי למדוד סוגים אחרים של זמן טעינה, אפשר להשתמש ב-Cloud Monitoring כדי להגדיר מדדים מותאמים אישית באפליקציה.

אפשר לראות תרשימים של מדדי השהיה במסוף Google Cloud ובמסוף Cloud Monitoring. אתם יכולים לראות מדדי השהיה משולבים שכוללים קריאות וכתיבות, או מדדים נפרדים לקריאות ולכתיבות.

על סמך זמן האחזור של כל בקשה, Spanner מקבץ את הבקשות לאחוזונים. אפשר לראות את מדדי זמן הטעינה לאחוזון ה-50 ולאחוזון ה-99:

  • חביון באחוזון ה-50: החביון המקסימלי, בשניות, של 50% מהבקשות הכי מהירות. לדוגמה, אם זמן האחזור של האחוזון ה-50 הוא 0.5 שניות, אז Spanner עיבד 50% מהבקשות בפחות מ-0.5 שניות.

    המדד הזה נקרא לפעמים חביון חציוני.

  • האחוזון ה-99 של זמן האחזור: זמן האחזור המקסימלי, בשניות, עבור 99% מהבקשות הכי מהירות. לדוגמה, אם זמן האחזור באחוזון ה-99 הוא 2 שניות, אז Spanner עיבד 99% מהבקשות בפחות מ-2 שניות.

זמן אחזור ופעולות לשנייה

כשמופע מעבד מספר קטן של בקשות במהלך תקופה מסוימת, חביון האחוזון ה-50 וה-99 במהלך התקופה הזו לא מצביע על הביצועים הכוללים של המופע. בתנאים האלה, מספר קטן מאוד של חריגים יכול לשנות באופן משמעותי את מדדי זמן האחזור.

לדוגמה, נניח שמופע מעבד 100 בקשות במהלך שעה. במקרה הזה, זמן האחזור באחוזון ה-99 של המופע במהלך השעה הזו הוא משך הזמן שנדרש לעיבוד הבקשה הכי איטית. מדידת זמן אחזור שמבוססת על בקשה אחת לא משמעותית.

איך מאבחנים בעיות שקשורות לזמן אחזור

בקטעים הבאים מוסבר איך לאבחן כמה בעיות נפוצות שעלולות לגרום לזמן אחזור גבוה מקצה לקצה באפליקציה.

כדי לראות במהירות את מדדי זמן האחזור של מופע, משתמשים במסוףGoogle Cloud . כדי לבדוק את המדדים מקרוב יותר ולמצוא קורלציות בין זמן האחזור למדדים אחרים, משתמשים במסוף Cloud Monitoring.

זמן אחזור כולל ארוך, זמן אחזור קצר ב-Spanner

אם באפליקציה שלכם יש זמן אחזור גבוה מהצפוי, אבל מדדי זמן האחזור של Spanner נמוכים משמעותית מזמן האחזור הכולל מקצה לקצה, יכול להיות שיש בעיה בקוד האפליקציה. אם באפליקציה יש בעיית ביצועים שגורמת לכך שחלק מנתיבי הקוד איטיים, יכול להיות שהחביון הכולל מקצה לקצה של כל בקשה יגדל.

כדי לבדוק אם הבעיה קיימת, צריך להשוות את הביצועים של האפליקציה כדי לזהות נתיבי קוד שפועלים לאט יותר מהצפוי.

אפשר גם להוסיף הערות לקוד שמתקשר עם Spanner, ואז למדוד שוב את זמן האחזור הכולל. אם חביון המערכת הכולל לא משתנה באופן משמעותי, סביר להניח ש-Spanner לא גורם לחביון הגבוה.

זמן אחזור כולל ארוך, זמן אחזור ארוך של Spanner

אם באפליקציה יש זמן אחזור גבוה מהצפוי, ומדדי זמן האחזור של Spanner גם גבוהים, יכולות להיות לכך כמה סיבות:

  • למופע שלך נדרשת קיבולת חישוב נוספת. אם אין מספיק משאבי CPU במופע, וניצול ה-CPU חורג מהמקסימום המומלץ, יכול להיות ש-Spanner לא יוכל לעבד את הבקשות שלכם במהירות וביעילות.

  • חלק מהשאילתות גורמות לניצול גבוה של המעבד. אם השאילתות לא מנצלות את התכונות של Spanner שמשפרות את היעילות, כמו פרמטרים של שאילתות ואינדקסים משניים, או אם הן כוללות מספר גדול של צירופים או פעולות אחרות שדורשות הרבה משאבי CPU, השאילתות יכולות להשתמש בחלק גדול ממשאבי ה-CPU של המופע.

כדי לבדוק אם יש בעיות כאלה, משתמשים במסוף Cloud Monitoring כדי לחפש קורלציה בין ניצול גבוה של CPU לבין זמן אחזור גבוה. בנוסף, כדאי לבדוק את הנתונים הסטטיסטיים של השאילתות עבור המופע כדי לזהות שאילתות שדורשות הרבה משאבי CPU במהלך אותו פרק זמן.

אם תגלו שגם ניצול המעבד וגם זמן האחזור גבוהים בו-זמנית, תצטרכו לפעול כדי לפתור את הבעיה:

המאמרים הבאים