בדף הזה מוסבר איך לזהות בעיות של זמן אחזור ברכיבי Spanner ואיך לפתור אותן.כדי לקבל מידע נוסף על נקודות אפשריות של זמן אחזור בבקשת Spanner, אפשר לעיין במאמר נקודות של זמן אחזור בבקשת Spanner.
אתם יכולים למדוד ולהשוות את זמני האחזור של הבקשות בין רכיבים שונים לבין מסד הנתונים, כדי לקבוע איזה רכיב גורם לזמן האחזור. זמני האחזור האלה כוללים את זמן האחזור מקצה לקצה, את זמן האחזור של ממשק הקצה של Google (GFE), את זמן האחזור של בקשות Spanner API ואת זמן האחזור של שאילתות.
באפליקציית הלקוח שמשתמשת בשירות שלכם, מוודאים שיש עלייה בחביון מקצה לקצה. בודקים את המאפיינים הבאים במדדים בצד הלקוח. מידע נוסף זמין במאמר תיאורים של מדדים מצד הלקוח.
-
client_name: השם והגרסה של ספריית הלקוח. -
location: Google Cloud האזור שבו מתפרסמים המדדים בצד הלקוח. אם הפריסה של האפליקציה מתבצעת מחוץ לאזורGoogle Cloud, המדדים יפורסמו באזורglobal. -
method: שם ה-method של ה-RPC, לדוגמהspanner.commit. -
status: סטטוס ה-RPC, לדוגמהOKאוINTERNAL.
אפשר לקבץ לפי המאפיינים האלה כדי לבדוק אם הבעיה מוגבלת ללקוח, לסטטוס או לשיטה ספציפיים. במקרה של עומסי עבודה בשני אזורים או במספר אזורים, בודקים אם הבעיה מוגבלת ללקוח ספציפי או לאזור ספציפי ב-Spanner.
-
כדאי לבדוק את תקינות אפליקציית הלקוח, במיוחד את תשתית המחשוב בצד הלקוח (לדוגמה, מכונה וירטואלית, מעבד (CPU) או שימוש בזיכרון, חיבורים, מתארים של קבצים וכו').
כדי לבדוק את זמן האחזור ברכיבי Spanner, אפשר לעיין במדדים בצד הלקוח:
א. בודקים את זמן האחזור מקצה לקצה באמצעות המדד
spanner.googleapis.com/client/operation_latencies.ב. בודקים את זמן האחזור של ממשק הקצה של Google (GFE) באמצעות המדד
spanner.googleapis.com/client/gfe_latencies.בודקים את המאפיינים הבאים של מדדי Spanner:
-
database: שם מסד הנתונים של Spanner. -
method: שם ה-method של ה-RPC, לדוגמהspanner.commit. -
status: סטטוס ה-RPC, לדוגמהOKאוINTERNAL.
אפשר לקבץ לפי המאפיינים האלה כדי לראות אם הבעיה מוגבלת למסד נתונים, לסטטוס או לשיטה ספציפיים. אם מדובר בעומסי עבודה בשני אזורים או במספר אזורים, כדאי לבדוק אם הבעיה מוגבלת לאזור ספציפי.
-
בודקים את זמן האחזור של בקשת Spanner API באמצעות המדד
spanner.googleapis.com/api/request_latencies. מידע נוסף זמין במאמר בנושא מדדי Spanner.אם יש לכם זמן אחזור גבוה מקצה לקצה, אבל זמן אחזור נמוך של GFE וזמן אחזור נמוך של בקשת Spanner API, יכול להיות שיש בעיה בקוד האפליקציה. יכול להיות גם שמדובר בבעיה ברשת בין הלקוח לבין GFE אזורי. אם יש באפליקציה בעיית ביצועים שגורמת לכך שחלק מנתיבי הקוד פועלים לאט, יכול להיות שזמן האחזור מקצה לקצה של כל בקשת API יתארך. יכול להיות שיש בעיה בתשתית המחשוב של הלקוח שלא זוהתה בשלב הקודם.
אם יש לכם זמן אחזור גבוה של GFE, אבל זמן אחזור נמוך של בקשת Spanner API, יכול להיות שהסיבה לכך היא אחת מהסיבות הבאות:
גישה למסד נתונים מאזור אחר. הפעולה הזו עלולה להוביל לזמן אחזור גבוה של GFE ולזמן אחזור נמוך של בקשות API של Spanner. לדוגמה, יכול להיות שלתעבורה מלקוח באזור
us-east1שיש לו מופע באזורus-central1יהיה זמן אחזור ארוך ב-GFE, אבל זמן אחזור קצר יותר בבקשת API של Spanner.יש בעיה בשכבת GFE. כדאי לבדוק בGoogle Cloud לוח הבקרה של הסטטוס אם יש בעיות ברשת באזור שלכם. אם לא נמצאו בעיות, צריך לפתוח בקשת תמיכה ולכלול בה את המידע הזה כדי שמהנדסי התמיכה יוכלו לעזור בפתרון בעיות של GFE.
בדיקת ניצול המעבד (CPU) של המכונה. אם ניצול המעבד (CPU) של המופע גבוה מהרמה המומלצת, כדאי להוסיף עוד צמתים באופן ידני או להגדיר שינוי גודל אוטומטי. מידע נוסף זמין במאמר סקירה כללית על שינוי גודל אוטומטי.
כדאי לעיין בKey Visualizer כדי לזהות נקודות חמות פוטנציאליות או דפוסי גישה לא מאוזנים ולפתור בעיות שקשורות אליהם. בנוסף, כדאי לנסות לבטל שינויים בקוד האפליקציה שיש להם קורלציה חזקה עם פרק הזמן שבו הבעיה התרחשה.
בודקים אם יש שינויים בדפוסי התנועה.
כדאי לבדוק את התובנות לגבי שאילתות ואת התובנות לגבי עסקאות כדי לראות אם יש צווארי בקבוק בביצועים של שאילתות או עסקאות.
אפשר להשתמש בהוראות שבקטע השאילתות הפעילות הכי ישנות כדי לראות שאילתות הוצאות שעלולות לגרום לצוואר בקבוק בביצועים, ולבטל את השאילתות לפי הצורך.
כדי לפתור את הבעיה, אפשר להיעזר בהליכים שבקטעים לפתרון בעיות בנושאים הבאים, באמצעות כלי בדיקה של Spanner:
המאמרים הבאים
- אחרי שזיהיתם את הרכיב שמכיל את זמן האחזור, תוכלו להשתמש במדדים מובנים בצד הלקוח כדי לבדוק את הבעיה לעומק.
- איך משתמשים במדדים כדי לאבחן את זמן האחזור.
- איך פותרים שגיאות שקשורות לחריגה מהזמן הקצוב לתפוגה ב-Spanner