בדף הזה מוסבר על תרחישי שגיאות שונים, ומופיעות בו הנחיות לפתרון השגיאות.
תרחישי שכפול
בקטע הזה מוסברות בעיות שכפול שעלולות להתרחש באשכול.
איך עוקבים אחרי השהיות בשכפול?
ל-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 של המופע, צריך להוסיף לרשימת ההיתרים את הפורטים 11000 עד 13047. מידע נוסף על נקודות הקצה האלה זמין במאמר כתובות רשת שמורות.
שגיאת חיבור שנגרמת בגלל מדיניות הארגון
יכול להיות שיש לכם מדיניות ארגונית שחוסמת את החיבורים של Private Service Connect למופע של Memorystore for Redis Cluster.
אם במדיניות הארגון שלכם נעשה שימוש במדיניות .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 יכול לעמוד בקצב של עומסי עבודה גבוהים ומתמשכים של כתיבה.