בדף הזה מוסבר איך מופע של Memorystore for Redis Cluster מתנהג במהלך שינוי הגודל.
אפשר להגדיל את הקיבולת של המופע בדרכים הבאות:
אפשר לשנות את מספר הרסיסים של המופע. הפעולה הזו נקראת התאמה אופקית. אפשר להרחיב את המופע באופן אופקי באחת מהדרכים הבאות:
הרחבת הקיבולת: הגדלת הקיבולת של המופע, כך שלמופע יהיו יותר זיכרון וכוח עיבוד כדי לטפל בנפח גדול יותר של נתונים או תנועה. הקיבולת של המכונה נקבעת לפי מספר הרסיסים במכונה.
הגדלת מספר המופעים מאפשרת לאפליקציה להתמודד עם ביקוש מוגבר בלי לפגוע בביצועים. כדי להרחיב אופקית את המכונה, מוסיפים לה שרדים.
הקטנת הקיבולת: הקטנת הקיבולת של המופע, שמקטינה גם את כוח העיבוד וגם את כמות הזיכרון שזמינה לאחסון נתונים. המצב הזה קורה כשדרישות הנתונים של האפליקציה יורדות ואתם צריכים להפחית את השימוש במשאבים כדי לחסוך בעלויות. כדי לצמצם את המכונה, מקטינים את מספר הרסיסים במכונה.
אפשר לשנות את סוג הצומת של המופע. הפעולה הזו נקראת שינוי גודל אנכי. אפשר להגדיל את הקיבולת של מופע באופן אנכי באחת מהדרכים הבאות:
- הגדלת הקיבולת: הגדלת הקיבולת של המופע. הקיבולת של המכונה שלכם נקבעת לפי סוג הצומת של המכונה. כדי להגדיל את הקיבולת של מופע, צריך לשנות את סוג הצומת לסוג צומת גדול יותר. לדוגמה, אפשר להגדיל את המכונה מ
redis-standard-smallלסוג צומת לredis-highmem-mediumלסוג צומת. הקטנת הקיבולת: הקטנת הקיבולת של המופע. כדי להקטין את הקיבולת של מופע, משנים את סוג הצומת לסוג צומת קטן יותר. לדוגמה, הקטנת הקיבולת של המופע מסוג צומת
redis-highmem-mediumלסוג צומתredis-standard-small.
- הגדלת הקיבולת: הגדלת הקיבולת של המופע. הקיבולת של המכונה שלכם נקבעת לפי סוג הצומת של המכונה. כדי להגדיל את הקיבולת של מופע, צריך לשנות את סוג הצומת לסוג צומת גדול יותר. לדוגמה, אפשר להגדיל את המכונה מ
ההשפעה של שינוי קנה המידה
במהלך פעולת שינוי הגודל, הזמינות של המופע לא מושפעת. עם זאת, כשמשנים את מספר הרסיסים במופע, Memorystore for Redis Cluster מבצע איזון מחדש של מרחב המפתחות של המופע. הפעולה הזו עלולה לגרום לזמן אחזור ארוך יותר במהלך פעולת ההרחבה.
בנוסף, ההשפעה של שינוי סוג הצומת כדי להגדיל את המכונה באופן אנכי דומה למה שקורה בפעולת תחזוקה.
תרחישי כשל
אם נתקלתם בשגיאה במהלך פעולת ההרחבה, סביר להניח שהיא נגרמה בגלל אחד מהתרחישים הבאים:
אתם רוצים לעדכן את מספר הרסיסים של המכונה, אבל אין לכם מספיק זיכרון פנוי לסוג הצומת
redis-shared-core-nanoשל המכונה.כדי לפתור את הבעיה, אפשר להגדיל את המכונה או לפנות זיכרון מהצמתים של המכונה. כדי לפנות מקום בזיכרון:
- מתחברים למכונה של Memorystore for Redis Cluster.
- כדי לקבל פרטים על המכונה, כולל כתובת ה-IP ומספר היציאה, משתמשים בפקודה
gcloud redis clusters describe. - חשוב לשים לב לכתובת ה-IP ולמספר היציאה של המופע.
כדי לקבל מידע על הצמתים של המופע, משתמשים בפקודה הבאה:
redis-cli -h IP_ADDRESS -p PORT_NUMBER cluster nodes
מחליפים את IP_ADDRESS ו-PORT_NUMBER בערכים שרשמתם בשלב הקודם.
רושמים את כתובת ה-IP ואת מספר היציאה של הצומת שאין בו מספיק נפח אחסון פנוי. המזהה של הצומת הזה זהה למזהה שמופיע בשגיאה.
כדי להתחבר לצומת הזה, משתמשים בפקודה הבאה:
redis-cli -h IP_ADDRESS -p PORT_NUMBER
מחליפים את IP_ADDRESS ו-PORT_NUMBER בערכים שרשמתם בשלב הקודם.
בהנחיה, מזינים את הפקודה
info memory.בפלט מופיעים ערכים לפרמטרים
used_memoryו-maxmemory. used_memoryהוא נפח הזיכרון שהצומת משתמש בו, ו-maxmemoryהוא נפח הזיכרון שזמין לצומת.מחלקים את הערך של הפרמטר
used_memoryבערך של הפרמטרmaxmemoryומוודאים שהמנה גדולה מ-98%.כדי לפנות מקום לצומת, מוחקים חלק מהמפתחות של הצומת.
מריצים שוב את הפקודה
info memory. בפלט, הערך של הפרמטרused_memoryקטן יותר.מחלקים את הערך של הפרמטר
used_memoryבערך של הפרמטרmaxmemoryומוודאים שמנת החלוקה קטנה מ-98%. אם לא, צריך למחוק עוד מפתחות.לגבי כל צומת אחר שאין בו מספיק מקום פנוי, חוזרים על שלבים 4 עד 11 של התהליך הזה.
הגדלתם את מספר הרסיסים למספר קטן יותר, שלא מספיק כדי להכיל את כל המפתחות שמאוחסנים במופע המקורי של Memorystore for Redis Cluster. כדי לפתור את הבעיה, צריך להגדיל את מספר הרסיסים למספר שיספיק להכיל את כל המפתחות המאוחסנים. מידע נוסף על הגדלת מספר הרסיסים במופע זמין במאמר הגדלת מספר הרסיסים.
הגדלתם את קנה המידה לסוג קטן יותר של צומת שאין לו את הקיבולת להכיל את כל הנתונים שמאוחסנים ב-Memorystore for Redis Cluster בסוג הצומת המקורי. אם זה קורה, Memorystore for Redis Cluster מספק לכם סוג צומת מומלץ להקטנת קנה המידה באופן אנכי.
עדכנתם את סוג הצומת של המופע, והחלפתם את ההגדרות שמוגדרות כברירת מחדל לסוג הצומת המקורי, או שההגדרות האלה כבר הוחלפו. עם זאת, סוג הצומת החדש והמורחב לא תומך בערכים של הגדרות ברירת המחדל, או שההגדרות לא תקפות לסוג הצומת. אם זה קורה, Memorystore for Redis Cluster מחזיר שגיאה. כדי לפתור את הבעיה, צריך לשנות את ההגדרות באופן ידני כך שיהיו תקפות לסוג הצומת החדש.
הגדלתם את הקיבולת של המופע בתקופה של עומס כתיבה גבוה (לדוגמה, במהלך בדיקת עומס). כדי לפתור את הבעיה, צריך להגדיל את הקיבולת בתקופות של תנועה נמוכה במופע.
יש לכם משבצת שמכילה מפתח גדול, ואתם רוצים להעביר את המפתח הזה לצומת אחר. עם זאת, בצומת הזה אין מספיק זיכרון כדי לתמוך במפתח. אי אפשר לעדכן את האשכול. כדי לפתור את הבעיה, צריך להקטין את גודל המפתח כך שיהיה קטן מ-128MB. לאחר מכן, מנסים שוב לבצע את פעולת העדכון.
לא ידוע מספר המשבצת שבבעלות צומת של אשכול, אלא רק טווח המשבצות. Memorystore for Redis Cluster מחזיר הודעת שגיאה. אם זה קורה, צריך להקטין את גודל המפתח ולנסות שוב לבצע את פעולת העדכון.
הגדלתם את הקיבולת של האשכול על ידי הרחבת קנה המידה למספר קטן יותר של רסיסים. עם זאת, אין מספיק זיכרון ב-Memorystore for Redis Cluster כדי לבצע את הבקשה הזו. כדי לפתור את הבעיה, צריך להקטין את הקיבולת של האשכול על ידי הגדלה של מספר הרסיסים המקורי והגדול יותר.
שיטות מומלצות
כדי לעזור לכם להגדיל את הקיבולת של המופע, וכדי להגדיל את המהירות והאמינות של הגדלת המופע, מומלץ להגדיל אותו בתקופות של נפח תנועה נמוך, בכל הזדמנות שמתאפשרת. מידע נוסף על מעקב אחרי התנועה במכונה זמין במאמר מעקב אחרי אשכולות.