מדריך פעולות QPID

אפליקציית Edge ל-Private Cloud בגרסה 4.52.01 נשלחת עם Qpid Broker-J 8.0.6. בדף הזה נסביר ושיקולים שקשורים לזיכרון ולדיסק את רכיב apigee-qpidd של Edge לענן פרטי (עם ברוקר מבוסס Java). הקטעים הבאים חלים באופן ספציפי על תרחיש לדוגמה ב-Qpid, מסבירים איך לכוונן את Qpid באמצעות מנגנוני התצורה של Apigee.

Qpid ב-Apigee

ב-Apigee משתמשים ב-Qpid בשני תהליכי עבודה עיקריים:

  • ניתוח נתונים
  • מונטיזציה

בשני תהליכי העבודה האלה, מעבד ההודעות יוצר הודעות, נאספו באצוות והועברו ל-Qpid. ב-Analytics, ההודעות נקראות על ידי Qpid-server. בנושא מונטיזציה, הם נקראים על ידי שרת הדירוג (חלק משרת-ניהול). לאחר הקריאה, ההודעות המקובצות יוסרו וייטמעו.

הקטעים הבאים מתארים את התצורות המומלצות לזיכרון ולדיסק עם Qpid. ההגדרות האישיות האלה מבוססות על גודל הודעה יחיד של 2KB ב-Analytics או מונטיזציה. עם ברירת המחדל של גודל אצווה של 50, כל הודעה ב-Qpid תהיה בערך 100kb. Apigee שמאפשר לשרתי proxy לשנות הודעה ולהוסיף לה מידע (Analytics או מונטיזציה). במקרים קיצוניים, הדבר עשוי לשנות באופן משמעותי את הגודל של הודעה בודדת ואת ההודעה המקובצת הכוללת ב-Qpid. אומנם באופן כללי המלצות לגבי זיכרון ודיסק בקטעים הבאים נכונות גם במקרים כאלה, יכול להיות שתצטרכו לבצע שינויים נוספים ב-Qpid כדי להבטיח שהפעולות יהיו חלקות.

זיכרון

Qpid Broker משתמש בשני סוגי זיכרון: זיכרון חצי-נפחי וזיכרון ערימה. Qpid שומר את ההודעות ב זיכרון שאינו כבד, והוא משתמש בזיכרון ערימה למשימות פנימיות שלו, הודעות לתורים, להחלפת נתונים וכו'. ברוב הנסיבות, Apigee ממליצה לשמור יחס של 3:1 בין זיכרון מחוץ לערימה לבין זיכרון ערימה בשביל Qpid Broker.

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

כברירת מחדל, Apigee מחשבת זיכרון ערימה (heap) או מחוץ לערימה (heap) של Qpid Broker על סמך זיכרון זמין בצומת. לסקריפטים של Apigee יש מגבלה רכה של 4GB יחד עבור הערימה (heap) של Qpid Broker זיכרון קטן מדי. אם רוצים לבטל את המגבלות האלה, אפשר להשתמש בשתי ההגדרות למטה כדי להגדיר ערכים משלכם לזיכרון הערימה (heap) וגם מחוץ לערימה (heap) של Qpid.

  • הגדרה של זיכרון ערימה: bin_run-qpidd_qpid.run.jvm.max_vm_heap=1024m
  • ההגדרות האישיות של זיכרון מחוץ לערימה: bin_run-qpidd_qpid.run.jvm.max_direct_memory_size=3072m

צפייה איך משנים הגדרה של Qpid של מידע על האופן שבו ניתן לשנות הגדרות אישיות.

מידע נוסף זמין במאמר הבא: Apache Qpid Reference for Memory

אחסון

ספריית הנתונים של Qpid Broker היא $APIGEE_ROOT/data/apigee-qpidd. היומנים של Qpid Broker מאוחסנים ב-$APIGEE_ROOT/var/log/apigee-qpidd.

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

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

bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60

בדוגמה הזו, הברוקר דוחה הודעות חדשות כשמערכת הקבצים הבסיסית היא 60% מלא.

איך משנים הגדרה של Qpid

כדי לשנות תצורה של Qpid:

  1. יוצרים או עורכים את הקובץ הבא:
    $APIGEE_ROOT/customer/application/qpidd.properties
  2. מוסיפים או מסירים הגדרות אישיות לפי הצורך, או משנים אותן. לדוגמה, כדי לשנות את ערך הזיכרון המקסימלי של Qpid Broker ל-6GB, צריך להוסיף את ההגדרה הבאה לשנות בקובץ:
    bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
  3. צריך לשמור את השינויים ולוודא שהקובץ נמצא בבעלות המשתמש ב-apigee וקריא:
    chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
  4. מתחילים מחדש את התהליך qpidd:
    הפעלה מחדש ב-apigee-service apigee-qpidd