אופטימיזציה של Discourse Multisite גדול: צווארי בקבוק במסד הנתונים וב-Sidekiq

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

תצורת ה-app.yml הנוכחית שלי היא:

  • UNICORN_WORKERS: 4
  • UNICORN_SIDEKIQS: 4
  • DISCOURSE_SIDEKIQ_WORKERS: 10
  • DISCOURSE_DB_POOL: 8

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

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

  • מקביליות Sidekiq: כיצד יש לכמת את DISCOURSE_SIDEKIQ_WORKERS בסביבת ריבוי אתרים כדי לטפל בכמות משימות גבוהה מבלי להעמיס על מסד הנתונים?
  • הפרדת תורים: האם מומלץ להפעיל תהליכי Sidekiq נפרדים לטיפול בתורים שונים (למשל, עדיפות critical לעומת low)? זה יבטיח שמשימות כבדות לא יחסמו משימות דחופות יותר.

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

תודה!

3 לייקים

Discourse אמור להיות מסוגל להתאים אותם אוטומטית בהתבסס על משאבי המערכת שלך. שים לב שבטוח להריץ מחדש את סקריפט ./discourse-setup אם הגדלת לאחרונה את משאבי המערכת שלך. הסקריפט יכול להסתגל למשאבים המוגברים ולהתאים את קובץ ה-.yml שלך בהתאם

2 לייקים

Sounds like you need fewer?

I’m pretty sure that it already knows to prioritize the high priority jobs.

2 לייקים

@itsbhanusharma @pfaffman תודה על העזרה והתובנות בנושא! אני מעריך את שניכם שהקדשתם מזמנכם לחלוק את המומחיות שלכם.

4 לייקים

If the database is the bottleneck, have you considered moving to larger instance type for your cloud database?

לייק 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.