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

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

Qpid ב-Apigee

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

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

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

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

זיכרון

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

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

כברירת מחדל, Apigee מחשב את הזיכרון של הערימה והערימה של 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, ראו איך משנים הגדרות אישיות ב-Qpid.

למידע נוסף, ראו מסמך עזר של Apache Qpid לזיכרון.

אחסון

ספריית הנתונים של 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