בדף הזה מוסבר על תרחישי שגיאות שונים, ומופיעות בו הנחיות לפתרון השגיאות.
תרחישי שכפול
בקטע הזה מוסברות בעיות שכפול שעלולות להתרחש באשכול.
איך עוקבים אחרי השהיות בשכפול?
ל-Memorystore for Redis Cluster יש את המדד /cluster/replication/maximum_offset_diff. המדד הזה עוקב אחרי ההפרש המקסימלי של היסטוריית השכפול (בבייטים) של צומת באשכול ראשי.
אם ההפרש בין ההזזה של השכפול נמוך, העלות של פעולות הסנכרון המצטברות של העותקים נמוכה יותר, והן מתבצעות בתדירות גבוהה יותר מאשר פעולות סנכרון מלאות.
מומלץ להגדיר ערך סף למדד maximum_offset_diff. אם
הסף יעבור, מערכת Memorystore for Redis Cluster תוכל לשלוח לכם התראה.
על סמך סוג הצומת של האשכול, מומלץ להגדיר את הסף באופן הבא:
אם סוג הצומת הוא
redis-shared-core-nano,redis-standard-small,redis-highmem-medium,redis-highcpu-mediumאוredis-standard-large, צריך להגדיר את ערך הסף כך שיהיה קטן מ-64MB.אם סוג הצומת הוא
redis-highmem-xlargeאוredis-highmem-2xlarge, צריך להגדיר את סף הזיכרון כך שיהיה קטן מ-1GB.
תרחישים של שגיאות בקישוריות
בקטע הזה מוסברות בעיות קישוריות שעלולות להתרחש באשכול.
שגיאת חיבור שנגרמת בגלל כללים של חומת אש
כללים בחומת האש עלולים לגרום לשגיאות בחיבור על ידי חסימת היציאות שבהן נעשה שימוש ב-Memorystore for Redis Cluster. לשתי נקודות הקצה של Private Service Connect באשכול, צריך לאפשר יציאות TCP מ-11000 עד 13047. מידע נוסף על נקודות הקצה האלה זמין במאמר כתובות רשת שמורות.
שגיאת חיבור שנגרמת בגלל מדיניות הארגון
יכול להיות שיש לכם מדיניות ארגונית שחוסמת את החיבורים של Private Service Connect לאשכול.
אם במדיניות הארגון שלכם נעשה שימוש במדיניות .restrictPrivateServiceConnectProducer, צריך לאפשר את התיקייה 961333125034, שהיא תיקייה שנועדה במיוחד ל-Memorystore for Redis Cluster. לדוגמה:
name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
rules:
- values:
allowedValues:
- under:folders/961333125034
אם במדיניות הארגון נעשה שימוש במדיניות .disablePrivateServiceConnectCreationForConsumers, צריך לאפשר את SERVICE_PRODUCERS. לדוגמה:
name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
rules:
- values:
allowedValues:
- SERVICE_PRODUCERS
שגיאת חיבור שנגרמת בגלל חיבורים שלא מגיבים
מומלץ מאוד להגדיר את אפליקציית הלקוח כך שתזהה חיבורים לא מגיבים ל-Memorystore for Redis Cluster. אם מזוהה חיבור שלא מגיב, הלקוח צריך לאפס אותו. כדי לבנות אפליקציה עמידה, מומלץ להשתמש בהגדרות הלקוח הבאות:
- הגדרת פרמטרים של TCP keep-alive: מגדירים את הפרמטרים
TCP keepalive time,TCP keepalive intervalו-TCP keepalive probesכך שהלקוחות יזהו וינתקו באופן יזום חיבורים שלא מגיבים, גם כשהחיבורים לא פעילים. לדוגמה, אם מגדירים את הפרמטרTCP keepalive timeל-30 שניות, את הפרמטרTCP keepalive intervalל-10 שניות ואת הפרמטרTCP keepalive probesל-3, הלקוחות יאפסו חיבורים לא פעילים שלא מגיבים תוך דקה. - הגדרה של פסק זמן למשתמשים ב-TCP: מגדירים את פסק הזמן הזה בלקוחות כדי לאפס חיבורים שיש להם בקשות ממתינות ולא מגיבים. לדוגמה, אם מגדירים את הזמן הקצוב לתפוגה ל-15 שניות, הלקוחות מאפסים חיבורים שלא מגיבים שיש להם בקשות בהמתנה אחרי 15 שניות.
תרחישי שימוש במעבד
בקטע הזה מוסברות בעיות בשימוש במעבד שעלולות להתרחש באשכול.
נגמר המקום במאגר הפלט של האשכול
אם נגמר המקום במאגר הפלט של האשכול, צריך לבצע את הפעולות הבאות:
- מגדירים ערך קטן יותר לפרמטר
maxmemory. - משתמשים במדיניות
allkeys-lrumaxmemory.
כשהזיכרון של האשכול מלא ומגיעה פעולת כתיבה חדשה, Memorystore for Redis Cluster מפנה מקום לכתיבה על ידי הוצאת מפתחות, בהתאם למדיניות maxmemory של האשכול. המדיניות allkeys-lru מסירה את המפתחות שהשימוש בהם היה הכי מזמן (LRU) מכל קבוצת המפתחות.
מומלץ לעקוב אחרי maxmemory וזיכרון בשימוש באשכול. המידע הזה עוזר לכם לדעת אם האשכול הגיע לקיבולת שהוקצתה לו.
בנוסף, הקטנת הערך של הפרמטר maxmemory מאפשרת יותר מקום לתקורה.
למה יכול להיות שמדדים חיצוניים חסרים באשכול?
אם יש שימוש גבוה במעבד (CPU) באשכול או שהמשאבים של האשכול מוצו (למשל, בגלל יותר מדי חיבורים), יכול להיות שהאשכול יתנהג בצורה לא צפויה ושהמדדים החיצוניים לא יוצגו.
תרחישי התמדה
בקטע הזה מוסברות בעיות של התמדה שעלולות להתרחש באשכול.
נפח התנועה של פעולות הכתיבה חורג מהיכולת של Memorystore for Redis Cluster לבצע דחיסה ולפנות מקום באמצעות שכתוב של AOF
אם זה קורה, קובץ ה-Append-Only File (AOF) גדל מהר יותר מהמהירות שבה תהליך השכתוב יכול להתמודד. התוצאה היא שאין מספיק מקום בדיסק, פעולות הכתיבה נכשלות והפעולות שדורשות יצירת עותק משוכפל וסנכרון מלא נחסמות.
ב-Memorystore for Redis Cluster הוטמעו אמצעי בקרה כדי לווסת את קצב העברת הנתונים לכתיבה. כך אפשר לוודא ששכתוב קובץ ה-AOF יכול לעמוד בקצב של עומסי עבודה גבוהים ומתמשכים של כתיבה.