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

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

Qpid ב-Apigee

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

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

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

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

זיכרון

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

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

כברירת מחדל, Apigee מחשבת זיכרון ערימה (heap) או מחוץ לערימה (heap) של Qpid Broker על סמך הזיכרון הזמין בצומת. לסקריפטים של Apigee יש מגבלה רכה של 4GB יחד עם הזיכרון של Qpid Broker וגם מחוץ לערימה. כדי לעקוף את המגבלות האלה, אפשר להשתמש בשתי ההגדרות הבאות כדי להגדיר ערכים משלכם לזיכרון הערימה (heap) ולנפח הערימה (off-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 שומר את ההודעות שלו בספריית הנתונים. כברירת מחדל, ה-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