גרסת Edge ל-Private Cloud היא גרסה 4.53.00 עם Qpid Broker-J 8.0.6. בדף הזה נסביר
ושיקולים שקשורים לזיכרון ולדיסק
את רכיב apigee-qpidd
של Edge לענן פרטי (עם ברוקר מבוסס Java).
הקטעים הבאים חלים באופן ספציפי על
תרחיש לדוגמה ב-Qpid, מסבירים איך לכוונן את Qpid באמצעות מנגנוני התצורה של Apigee.
Qpid ב-Apigee
ב-Apigee משתמשים ב-Qpid בשני תהליכי עבודה עיקריים:
- ניתוח נתונים
- מונטיזציה
בשני תהליכי העבודה האלה, מעבד ההודעות יוצר הודעות, נאספו באצוות והועברו ל-Qpid. ב-Analytics, ההודעות נקראות על ידי שרת Qpid. ב-Monetization, הן נקראות על ידי שרת הדירוג (חלק משרת הניהול). לאחר הקריאה, ההודעות המקובצות יוסרו וייטמעו.
הגדרות מומלצות
בקטעים הבאים מתוארות ההגדרות המומלצות של זיכרון ותקליטור ב-Qpid. ההגדרות האלה מבוססות על הודעה אחת בגודל 2KB ל-Analytics או למונטיזציה. כשגודל האצווה שמוגדר כברירת מחדל הוא 50, כל הודעה ב-Qpid תהיה בגודל של כ-100KB. Apigee שמאפשר לשרתי proxy לשנות הודעה ולהוסיף לה מידע (Analytics או מונטיזציה). במקרים קיצוניים, הדבר עשוי לשנות באופן משמעותי את הגודל של הודעה בודדת ואת ההודעה המקובצת הכוללת ב-Qpid. אומנם באופן כללי המלצות לגבי זיכרון ודיסק בקטעים הבאים נכונות גם במקרים כאלה, יכול להיות שתצטרכו לבצע שינויים נוספים ב-Qpid כדי להבטיח שהפעולות יהיו חלקות.
זיכרון
ב-Qpid Broker נעשה שימוש בשני סוגי זיכרון: זיכרון מחוץ ל-heap וזיכרון heap. Qpid שומר הודעות בזיכרון מחוץ ל-heap, ומשתמש בזיכרון heap למשימות הפנימיות שלו, להעברת הודעות לתורנויות ולבוררים וכו'. ברוב המקרים, מומלץ ב-Apigee לשמור על יחס של 3:1 בין זיכרון מחוץ ל-heap לזיכרון heap ב-Qpid Broker.
הודעות בזיכרון מחוץ לאוסף (off-heap) נשמרות בדיסק. בנוסף, אם השימוש הכולל בזיכרון מחוץ לאוסף (off-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
- הגדרה של זיכרון מחוץ לאיפ (off-heap):
bin_run-qpidd_qpid.run.jvm.max_direct_memory_size=3072m
במאמר איך משנים הגדרות של Qpid מוסבר איך לשנות הגדרות.
למידע נוסף, ראו חומר העזר בנושא Apache Qpid לזיכרון.
אחסון
ספריית הנתונים של 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
בדוגמה הזו, הברוקר דוחה הודעות חדשות כשמערכת הקבצים הבסיסית היא 60% מלא.
איך משנים הגדרות של Qpid
כדי לשנות הגדרה של Qpid:
- יוצרים או עורכים את הקובץ הבא:
$APIGEE_ROOT/customer/application/qpidd.properties
- מוסיפים, מסירים או משנים את ההגדרות לפי הצורך.
לדוגמה, כדי לשנות את ערך הזיכרון המקסימלי של Qpid Broker ל-6GB, צריך להוסיף את ההגדרה הבאה
לשנות בקובץ:
bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
- שומרים את השינויים ומוודאים שהקובץ בבעלות המשתמש
apigee
ואפשר לקרוא אותו:chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
- מתחילים מחדש את התהליך
qpidd
:הפעלה מחדש ב-apigee-service apigee-qpidd