שאלות נפוצות בנושא Memorystore for Valkey

בדף הזה תוכלו למצוא תשובות לשאלות הנפוצות הבאות על השימוש ב-Memorystore for Valkey:

כמה זיכרון ומעבד מומלץ להשתמש?

מומלץ שהשימוש בזיכרון לא יעלה על 80% מברירת המחדל של maxmemory. מומלץ גם להפעיל את המחשב עם שימוש ממוצע במעבד של 60%. הבאפר הזה מבטיח שתוכלו לסבול את אובדן הזמינות של אזור זמינות אחד, שמהווה בערך שליש מהקיבולת הכוללת שלכם. בתרחיש הזה, השימוש הממוצע במעבד בצמתים שנותרו הוא בערך 90%.

איך אפשר לעקוב אחרי השימוש במעבד (CPU) ובזיכרון?

כדי לעקוב אחר השימוש במעבד (CPU) גם בצומת הראשי של Memorystore for Valkey וגם בכל העתקים לקריאה שלו, משתמשים במדד /instance/cpu/maximum_utilization. המדד הזה מודד את השימוש המקסימלי במעבד בכל הצמתים במופע, מ-0.0 (0%) עד 1.0 (100%). מידע נוסף זמין במאמר בנושא שיטות מומלצות לשימוש במעבד.

כדי לעקוב אחרי הזיכרון שבו משתמשים הצומת הראשי של Memorystore for Valkey והרפליקות לקריאה שלו, משתמשים במדד /instance/node/memory/utilization. המדד הזה מודד את ניצול הזיכרון של צומת יחיד במופע, מ-0.0 (0%) עד 1.0 (100%).

איך מגדירים התראות למעקב אחרי השימוש במעבד ובשימוש בזיכרון?

כדי להגדיר התראות ב-Cloud Monitoring על השימוש במעבד ובזיכרון, לדוגמה, אתם יכולים להגדיר התראה שתשלח לכם אם מדד /instance/memory/maximum_utilization יעבור את הסף שהגדרתם. מידע נוסף מופיע במאמר הגדרת התראה ב-Monitoring על שימוש בזיכרון.

כמה חיבורים מאפליקציית הלקוח מומלץ להשאיר פתוחים?

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

מומלץ גם להפעיל צינורות (pipelining) בלקוח כדי שהלקוח יוכל לעבד יותר בקשות ולעבד אותן מהר יותר.

איך עוקבים אחרי מספר החיבורים של הלקוחות למופע?

כדי לעקוב אחרי מספר החיבורים ללקוח שבהם אתם משתמשים, אפשר להשתמש במדד /instance/node/clients/connected_clients. המדד הזה מודד את מספר הלקוחות שמחוברים לכל צומת במופע.

מה עושים אם יש יותר מדי חיבורים ללקוח?

המספר המקסימלי של חיבורי הלקוח, שאפשר למצוא באמצעות המדד /instance/clients/maximum_connected_clients, צריך להיות קטן מהערך שמשויך לפרמטר maxclients. אם הערכים שווים, מבצעים את הפעולות הבאות:

נניח שיש לכם אירוע קרוב שיגרום לעלייה חדה בתנועה לעסק שלכם. מה עושים?

אתם יכולים להגדיר את Memorystore for Valkey בהתאם לצרכים העסקיים שלכם. בתרחיש הזה, אפשר להגדיל את הקיבולת של המופע בדרכים הבאות:

  • אפשר להוסיף שרדים למופע. כך המופע מקבל יותר שימוש במעבד כדי לטפל בנפח גדול יותר של נתונים או תעבורה. הקיבולת של המופע נקבעת לפי מספר הרסיסים במופע. הוספת שברים מאפשרת ליישום לטפל בביקוש מוגבר בלי לפגוע בביצועים.
  • אפשר לשנות את סוג הצומת לסוג צומת גדול יותר. כך המופע מקבל יותר זיכרון. הקיבולת של המכונה שלכם נקבעת לפי סוג הצומת של המכונה. לדוגמה, אפשר לשנות את סוג הצומת מסוג צומת standard-small לסוג צומת highmem-medium.

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

איך אתם מאבטחים את הנתונים?

כדי לאבטח את הנתונים, Memorystore for Valkey מספק לכם את המנגנונים הבאים:

  • אימות באמצעות ניהול זהויות והרשאות גישה (IAM): שימוש ב-IAM כדי לנהל את גישת ההתחברות של המשתמשים וחשבונות השירות. אימות מבוסס IAM משתלב עם Valkey AUTH, ומאפשר לכם להחליף פרטי כניסה (אסימוני IAM) בצורה חלקה בלי להסתמך על סיסמאות סטטיות.
  • הצפנה בזמן ההעברה: הצפנה של כל התעבורה ב-Valkey באמצעות פרוטוקול Transport Layer Security ‏ (TLS). כשההצפנה במעבר מופעלת, לקוחות Valkey מתקשרים בצורה מאובטחת דרך חיבור. לקוחות Valkey שלא הוגדרו ל-TLS נחסמים.

מהן השיטות המומלצות לשימוש בקוד לקוח?

כדי להשתמש בקוד לקוח עם Memorystore for Valkey בצורה אופטימלית, מומלץ להשתמש בשיטות המומלצות הבאות:

  • כדי לחבר את האפליקציה למופע של Memorystore for Valkey עם Cluster Mode Enabled, צריך להשתמש בלקוח מומלץ, כמו valkey-go,‏ iovalkey,‏ valkey-py או Valkey GLIDE.

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

  • מומלץ להגדיר את מרווחי הזמן הקצובים לתפוגה של החיבור לחמש שניות, ואת מרווחי הזמן הקצובים לתפוגה של הבקשה ל-10 שניות. אם מגדירים את הזמן הקצוב לתפוגה למרווחים קצרים יותר, יכול להיות ש-Memorystore for Valkey יחווה סערות של חיבור מחדש, מה שעלול לסכן את השירות.

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

  • שימוש בדוגמאות קוד של ספריות לקוח. לדוגמה, ערכי ברירת המחדל של הלקוח valkey-go עומדים בכל ההמלצות שלנו, כך שלא צריך להגדיר שום דבר עבור הלקוח הזה.

מהן האפשרויות שלכם לעמידות הנתונים?

‫Memorystore for Valkey מספק לכם את התכונות הבאות לעמידות הנתונים:

  • זמינות גבוהה: ב-Memorystore for Valkey יש קיבולת עודפת בצמתי העתקה. אם מתרחש כשל, מערכת Memorystore for Valkey יכולה להשתמש בקיבולת הזו כדי לפעול ללא השבתה.

  • עמידות: אם הסביבה שלכם קורסת באופן בלתי צפוי, Memorystore for Valkey משחזר את הסביבה באופן אוטומטי. התופעה הזו נקראת התמדה.

    ‫Memorystore for Valkey מציע את סוגי העמידות הבאים:

    • התמדה של מסד נתונים של Redis‏ (RDB): הגנה על הנתונים באמצעות שמירת תמונות מצב של הנתונים באחסון עמיד. אתם בוחרים את התדירות של התמונות האלה על ידי בחירת מרווח זמן בין תמונות. אם יש כשלים בצמתים, אפשר לשחזר את הנתונים גם כשמעבר לגיבוי (failover) לא אפשרי.

    • שימור נתונים באמצעות קובץ להוספה בלבד (AOF): משתמשים בסוג השימור הזה כשרוצים לתת עדיפות לעמידות הנתונים. התמדה של AOF מאחסנת נתונים באופן עמיד על ידי תיעוד כל פקודת כתיבה בקובץ יומן שנקרא קובץ AOF. אם מתרחשת כשל במערכת או הפעלה מחדש, השרת מפעיל מחדש את הפקודות בקובץ ה-AOF באופן רציף כדי לשחזר את הנתונים.

  • גיבויים: שחזור ידני של מכונות Memorystore for Valkey לנקודה ספציפית בזמן. בנוסף, אפשר להשתמש בגיבויים כדי לייצא ולנתח נתונים.

    גיבויים שימושיים בתרחישים הבאים:

    • התאוששות מאסון: שימוש בגיבויים כחלק מתוכנית התאוששות מאסון. אם מתרחש אסון, אפשר לשחזר את הנתונים למופע חדש של Memorystore for Valkey.
    • העברת נתונים: העברת נתונים בין מופעים שונים של Memorystore for Valkey. אתם יכולים לאחד נתונים או להעביר אותם לאזור אחר. אפשר גם לשחזר גיבויים ממכונות Memorystore for Valkey.
    • שיתוף נתונים: שיתוף נתונים בין צוותים או אפליקציות שונים. השילוב הזה מאפשר שיתוף פעולה, ניתוח נתונים אופליין והעברת נתונים.
    • תאימות: יצירת גיבויים תקופתיים של נתוני מטמון למטרות תאימות.
    • תזמון גיבויים: בנוסף ליצירת גיבוי לפי דרישה, אפשר להגדיר למופע לוח זמנים לגיבוי. כתוצאה מכך, Memorystore for Valkey מתחיל לבצע גיבויים תקופתיים של המכונה.
  • שכפול בין אזורים: יצירת מכונות משניות ממכונה ראשית כדי שהמכונה תהיה זמינה לקריאה באזורים שונים. מופעים משניים מספקים גם יתירות לתרחישי התאוששות מאסון (DR) במקרה של הפסקות חשמל אזוריות.

    שכפול בין אזורים ב-Memorystore for Valkey מספק לכם את היתרונות הבאים:

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

איך משפרים את הביצועים של המופע?

כדי לשפר את הביצועים של מופע Memorystore for Valkey, כדאי לבצע את הפעולות הבאות:

  • כדאי לפעול לפי השיטות המומלצות לניהול זיכרון ושימוש במעבד, כי הן עוזרות להשיג את הביצועים הכי טובים במופע.
  • אפשר להשתמש ביומני ביקורת כדי לעקוב אחרי הגישה למופע. כתוצאה מכך, תוכלו לקבוע אם יש בעיות שקשורות לפעילות של אדמינים במופע (יומן הביקורת Admin Activity) או למשתמשים שניגשים לנתונים במופע (יומן הביקורת Data Access).
  • שימוש ברפליקות לקריאה. ב-Memorystore for Valkey, השכפול הוא אסינכרוני. לכן, הנתונים בצומת הראשי לא מופיעים מיד בעותקים. אם אתם יכולים להסתדר עם נתונים שהם קצת לא עדכניים, כדאי להשתמש בעותקי קריאה. כך תוכלו ליהנות משיפורים משמעותיים ברוחב הפס של הקריאה ובזמן האחזור.
  • לא מומלץ להשתמש בפקודות Valkey שדורשות הרבה משאבים. שימוש בפקודות האלה עלול לגרום לבעיות הבאות בביצועים:

    • זמן אחזור גבוה ופסק זמן של לקוח
    • עומס על הזיכרון שנגרם מפקודות שמגדילות את השימוש בזיכרון
    • אובדן נתונים במהלך שכפול וסנכרון של צמתים כי ה-thread הראשי של Valkey חסום
    • בדיקות תקינות, ניראות ושכפול

    במקום להשתמש בפקודות האלה, כדאי להשתמש בפקודות שצורכות פחות משאבים. לדוגמה, כדי לסרוק את כל מרחב המפתחות, אל תשתמשו בפקודה KEYS. במקומה, צריך להשתמש ב-SCAN.

    מידע נוסף על פקודות Valkey שצורכות הרבה משאבים ועל חלופות יעילות יותר זמין במאמר פקודות Valkey שצורכות הרבה משאבים.

  • אם אתם יכולים להגדיר זמן תפוגה לנתונים שלכם, מומלץ לעשות זאת כדי לצמצם את צריכת הזיכרון.

  • משדרגים את הגרסה של מופע Memorystore for Valkey לגרסה העדכנית ביותר של המופע. בגרסאות חדשות יותר של התוכנה יש שיפורים באמינות ובביצועים.

  • משנים את הערך של הפרמטר maxmemory-policy. הפרמטר הזה מציין את ההתנהגות של Valkey כשנתוני המופע מגיעים למגבלה maxmemory.

    כשזיכרון המכונה מלא ומגיעה פעולת כתיבה חדשה, Valkey מפנה מקום לכתיבה על ידי הוצאת מפתחות מהזיכרון בהתאם למדיניות maxmemory של המכונה. אם הערך של הפרמטר
    maxmemory-policy מוגדר ל-noeviction, אז Memorystore for Valkey מחזיר שגיאה כשהמופע מגיע לזיכרון המקסימלי שלו. עם זאת, Memorystore for Valkey לא מחליף או מסיר נתונים. כדי לשפר את הזמינות של המופע, צריך לשנות את הערך של הפרמטר maxmemory-policy כדי ש-Memorystore for Valkey יוכל להוציא מפתחות מהזיכרון.

    מידע נוסף על הערכים השונים שאפשר להגדיר לפרמטר maxmemory-policy זמין במאמר Maxmemory policies. מידע נוסף על עדכון הפרמטר הזה זמין במאמר עדכון פרמטר של הגדרה.

  • מכווננים את מופע Memorystore for Valkey כך שיהיה לו יחס פגיעה במטמון (cache hit ratio) שרוצים. כך תוכלו להתאים את גודל מסד הנתונים כדי שיוכל לטפל באחוז המתאים של בקשות.

    כדי לשפר את הביצועים של מופע:

    1. אפשר להשתמש במדדי המעקב total_keyspace_hits_count ו-total_keyspace_misses_count כדי לקבוע את המספר הכולל של חיפושי מפתחות מוצלחים עבור המופע ואת המספר הכולל של חיפושי מפתחות שנכשלו עבור המופע, בהתאמה.
    2. מחלקים את המספר הכולל של ההיטים במספר הכולל של ההיטים וההחמצות
      (כלומר, היטים חלקי (היטים + החמצות)). המנה היא יחס הפגיעה במטרה.
    3. כדי לשנות את המופע כך שיחס הפגיעה יתאים לכם, צריך לשנות את גודל המופע. אפשר להגדיל או להקטין את מספר הרסיסים, או להגדיל או להקטין את סוג הצומת. מידע נוסף זמין במאמר מידע על שינוי הקיבולת של מופע.

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

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

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

איך אפשר לבצע אופטימיזציה של זמינות גבוהה למופע?

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

אם יוצרים מופע של זמינות גבוהה, מומלץ להשתמש במדד /instance/node/replication/offset. באמצעות המדד הזה, אפשר לעקוב אחרי ההפרש ברפליקציה (בבייטים) של צומת יחיד במופע. ההפרש בהעתקה הוא מספר הבייטים שלא הועתקו ב-Memorystore for Valkey בין הצומת הראשי לבין העותקים לקריאה.