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

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

‫Qpid ב-Apigee

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

  • Analytics
  • מונטיזציה

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

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

זיכרון

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

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

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

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

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

bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60

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

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

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

  1. יוצרים או עורכים את הקובץ הבא:
    $APIGEE_ROOT/customer/application/qpidd.properties
  2. מוסיפים, מסירים או משנים את ההגדרות לפי הצורך. לדוגמה, כדי לשנות את הזיכרון המקסימלי של ה-heap של 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 restart