גיליון #
משתמש מדווח שהוא משתמש ב-Relianoid לאיזון עומסים עם התמדה מבוססת הכנסת קובצי Cookie. בתחילה, ההתקנה הייתה מאוזנת לחלוטין עם חמישה שרתים. עם זאת, לאחר הוספת שרת חדש למאגר, הפעלות לא מופצות כצפוי. לשרת החדש יש רק כמה סשנים, בעוד השרתים הקיימים ממשיכים לטפל ברוב התעבורה.
הסבר #
בעיה זו מתעוררת בגלל מנגנון ההתמדה הנוכחי של הפגישה ואלגוריתם איזון העומס שנמצא בשימוש.
הבנת הבעיה #
1. שמירה על הפעלה מבוססת הכנסת קובצי Cookie : בעת שימוש בהכנסת קובצי Cookie לצורך שמירה על הפעלה, מאזן העומסים מקצה קובץ Cookie ייחודי לכל לקוח. קובץ Cookie זה מנתב בקשות עוקבות מאותו לקוח לאותו שרת backend, ומבטיח שמירה על הפעלה. זה עובד היטב בהגדרה יציבה אך יוצר אתגרים כאשר שרת חדש נוסף למאגר.
2. הפעלה קיימת "דביקה" : מכיוון שהפעלה כבר הוקמה עם קבוצת השרתים הראשונית, הפעלה קיימת זו נשארת "דביקה" לשרתים האחוריים המקוריים שלה עקב קובץ ה-cookie המתמיד. כתוצאה מכך, השרת החדש שנוסף מקבל רק הפעלה או תעבורה חדשים מלקוחות חדשים שטרם הוקצה להם קובץ cookie מתמיד.
3. מגבלות אלגוריתם התזמון הנוכחי : מאזני עומסים רבים משתמשים באלגוריתם תזמון ברירת מחדל כמו Round Robin או Least Response Time. אלגוריתמים אלה אינם בהכרח מאזנים מחדש את העומס כאשר מתווספים שרתים חדשים, במיוחד כאשר מדובר ב-session persistence. הסיבה לכך היא שהאלגוריתמים נוטים לשמור על חיבורים לממשקי backend קיימים עבור sessions פעילים.
מדוע הפעלות לא מאוזנות מחדש #
כאשר שרת חדש מתווסף, הוא לא מתחיל מיד לחלוק את העומס באופן שווה כי:
- הפעלות קיימות קשורות לקצה האחורי המקורי שלהן.
- אלגוריתם התזמון המוגדר כברירת מחדל אינו נותן עדיפות לחלקים אחוריים עם פחות הפעלות או חיבורים.
כדי להשיג חלוקה הוגנת של הפעלות, יש צורך באלגוריתם שונה של איזון עומסים.
פתרון #
השתמש באלגוריתם התזמון "החיבורים הקטנים ביותר". #
אלגוריתם Least Connections הוא שיטת תזמון שבה מאזן העומס בוחר את השרת האחורי עם הכי פחות חיבורים פעילים. גישה זו עוזרת לפזר הפעלות בצורה שווה יותר, במיוחד כאשר שרת חדש נוסף למאגר.
הנה הסיבה ש"חיבורים לפחות" פועל ביעילות בתרחיש זה:
- איזון מחדש דינמי: בניגוד לאלגוריתמים כמו Round Robin, Least Connections מעריכה כל הזמן באיזה שרת יש הכי פחות הפעלות פעילות. זה מאפשר לשרת החדש, שיש לו פחות הפעלות בהתחלה, לקבל יותר חיבורים חדשים עד שהעומס מתאזן.
- ניצול משאבים טוב יותר: עם יצירת הפעלות חדשות, הן יופנו לשרת עם העומס הנמוך ביותר, מה שמשפר את ניצול המשאבים הכולל.
שלבים ליישום אלגוריתם "החיבורים הכי פחות" ב-Relianoid #
1. גש לתצורת Relianoid Load Balancer: היכנס למסוף הניהול של Relianoid או השתמש בכלי CLI אם ישים.
2. נווט אל הגדרות מאזן עומסים: אתר את ההגדרות עבור מופע מאזן העומס שלך שמנהל את מאגר השרתים עם התמדה בהפעלה.
3. שנה את אלגוריתם התזמון:
- מצא את ההגדרה עבור אלגוריתם איזון עומסים או שיטת תזמון.
- שנה את האלגוריתם מההגדרה הנוכחית (למשל, Round Robin) ל חיבורים לפחות.
4. שמור והחל שינויים: הקפד לשמור את השינויים שלך ולהחיל אותם על תצורת מאזן העומס. בהתאם לסביבה שלך, זה עשוי לדרוש הפעלה מחדש של מאזן העומס או ביצוע טעינה רכה מחדש.
5. לפקח ולאמת: לאחר החלת השינויים, עקוב אחר התפלגות הפגישה בכל השרתים. עם הזמן, השרת החדש אמור להתחיל לקבל יותר הפעלות, מה שיוביל לעומס מאוזן יותר.
סיכום #
על ידי שינוי אלגוריתם איזון העומס ל-"Least Connections", אתה מבטיח שהשרת החדש שנוסף יוכל להתעדכן ולהתחיל לטפל בעוד הפעלות. שיטת תזמון דינמית זו לוקחת בחשבון את מספר החיבורים הפעילים ומפיצה ביעילות את העומס, ופותרת את בעיית חוסר האיזון שנגרמה עקב התמדה בהפעלה עם הכנסת קובצי Cookie.
אם אתה ממשיך להתמודד עם בעיות לאחר יישום השינוי הזה, שקול לבדוק:
- הבריאות והביצועים של השרת החדש שנוסף.
- התצורה של פרמטרים אחרים שעשויים להשפיע על איזון עומסים (למשל, הגדרות זמן קצוב של הפעלה, משך דביקות וכו').
- יומנים ברמת הרשת או האפליקציה עבור שגיאות פוטנציאליות או צווארי בקבוק.
על ידי ביצוע שלבים אלה, תוכל לייעל את תצורת מאזן העומס שלך כדי להבטיח חלוקה הוגנת ומאוזנת של הפעלות על פני כל השרתים במאגר שלך.