ב-Edge for Private Cloud 4.54.00 (שפועל ב-Java 21), מעבד ההודעות משתמש כברירת מחדל ב-Garbage-First Garbage Collector (G1GC). במאמר הזה מוסבר איך להגדיר ולאמת את ההגדרות של איסוף האשפה במעבד הבקשות.
התאמה אישית של מנגנון פינוי הזיכרון במעבדי הבקשות
בקטע הזה מוסבר איך להגדיר הגדרות חלופיות של איסוף אשפה (GC) במעבד הבקשות של Edge. כדי לנהל את הפרמטרים של GC, מעדכנים את מאפייני ה-GC במעבד הבקשות. כדי לשנות מאפיין כלשהו של ההגדרות, משתמשים בתחביר של האסימון שמוגדר במאמר איך מגדירים את Edge.
כדי לשנות את הגדרות ה-GC במעבדי הבקשות:
בדיקת הנכס ב-Google Chat
כך בודקים את מאפייני ה-GC שהוגדרו:
-
מחפשים את מאפייני ה-GC בספריית קובצי המקור של מעבד הבקשות
/opt/apigee/edge-message-processor/sourceבאמצעות הפקודה הבאה:grep -riE "useG1GC|useZGC|useStringDeduplication" /opt/apigee/edge-message-processor/source
-
מוודאים שהפלט של הפקודה הזו מציג את ההגדרות של מאפייני ה-GC של מעבד הבקשות:
/opt/apigee/edge-message-processor/source/conf/system.properties:useG1GC={T}conf_system_useG1GC{/T} /opt/apigee/edge-message-processor/source/conf/system.properties:useZGC={T}conf_system_useZGC{/T} /opt/apigee/edge-message-processor/source/conf/system.properties:useStringDeduplication={T}conf_system_useStringDeduplication{/T}המחרוזת בין התגים
{T}{/T}היא שם המאפיין שאפשר להגדיר בקובץ.propertiesשל מעבד הבקשות.
שינוי של GC במעבדי הבקשות
בשלבים הבאים מוסבר איך לשנות את הגדרות ה-GC במעבדי ההודעות של Apigee:
-
פותחים את הקובץ
/opt/apigee/customer/application/message-processor.propertiesבמכונה של מעבד ההודעות בעורך. אם הקובץ לא קיים, יוצרים אותו. לדוגמה:vi /opt/apigee/customer/application/message-processor.properties
-
מוסיפים את שורות ההגדרה הרצויות של GC על סמך פרופיל היעד:
-
אפשרות א': שימוש ב-G1GC כברירת המחדל של איסוף האשפה, יחד עם כמה שינויים:
conf_system_useG1GC=true conf_system_useStringDeduplication=true conf_system_g1gc.g1ReservePercent=15
-
אפשרות ב': הפעלת Generational ZGC (אופציונלי לפריסות עם זמן אחזור קצר במיוחד):
conf_system_useG1GC=false conf_system_useZGC=true bin_setenv_max_meta_space_size=1024m
-
אפשרות ג': הפעלת הגדרת GC כללית:
מגדירים את
bin_setenv_ext_jvm_optsבקובץ השינוי.propertiesשל הרכיב (/opt/apigee/customer/application/message-processor.properties) כדי להגדיר מאפייני GC כלליים, ואז מפעילים מחדש את הרכיב. לדוגמה:conf_system_useG1GC=false conf_system_useZGC=false bin_setenv_ext_jvm_opts="-XX:+UseParallelGC"
-
אפשרות א': שימוש ב-G1GC כברירת המחדל של איסוף האשפה, יחד עם כמה שינויים:
- שומרים את השינויים.
-
מוודאים שקובץ המאפיינים הזה נמצא בבעלות המשתמש
apigee. לדוגמה:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
מפעילים מחדש את מעבד הבקשות באמצעות הפקודה הבאה:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- אם יש לכם יותר ממעבד בקשות אחד, חזרו על השלבים האלה בכל מעבדי הבקשות.
עדכון ביטול הכפילויות של המחרוזות
כברירת מחדל, בהגדרת G1GC הערך של UseStringDeduplication הוא true, כדי לבצע אופטימיזציה של הקצאת הזיכרון של Java heap על ידי מתן אפשרות לערכי String זהים לשתף מערך תווים יחיד. כדי להשבית את ביטול הכפילויות של מחרוזות, מגדירים את conf_system_useStringDeduplication=false ב-/opt/apigee/customer/application/message-processor.properties ומפעילים מחדש את מעבד הבקשות, כמו שמתואר במאמר שינוי GC במעבדי הבקשות.
אימות הגדרות GC במעבדי הבקשות
כדי לוודא ששינויי התצורה של GC הוחלו על מעבד ההודעות:
-
מחפשים את מאפיין ה-GC בספרייה
/opt/apigee/edge-message-processor/confובודקים שהוא הוגדר עם הערך החדש. לדוגמה:grep -riE "useG1GC|useZGC|g1gc\.|useStringDeduplication" /opt/apigee/edge-message-processor/conf
-
מוודאים שהערכים החדשים שהגדרתם מופיעים ב-
/opt/apigee/edge-message-processor/conf/system.properties. לדוגמה, ההגדרות של Apigee Default GC מוצגות באופן הבא:/opt/apigee/edge-message-processor/conf/system.properties:useG1GC=true /opt/apigee/edge-message-processor/conf/system.properties:useZGC=false /opt/apigee/edge-message-processor/conf/system.properties:g1gc.maxGCPauseMillis=200 /opt/apigee/edge-message-processor/conf/system.properties:g1gc.initiatingHeapOccupancyPercent=45 /opt/apigee/edge-message-processor/conf/system.properties:g1gc.g1ReservePercent=15 /opt/apigee/edge-message-processor/conf/system.properties:useStringDeduplication=true
-
מוודאים שתהליך ה-JVM של מעבד ההודעות פועל והתחיל עם הדגלים
-XX:הצפויים:ps -ef | grep edge-message-processor | grep -E "UseG1GC|UseZGC"
-
ב-Apigee Default G1GC, מוודאים ששורת הפקודה כוללת את:
-XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -XX:G1ReservePercent=15 -XX:+UseStringDeduplication -XX:MaxMetaspaceSize=1024m -
ב-Generational ZGC, מוודאים ששורת הפקודה כוללת את:
-XX:+UseZGC -XX:+ZGenerational -XX:MaxMetaspaceSize=1024m
-
ב-Apigee Default G1GC, מוודאים ששורת הפקודה כוללת את:
- אם עדיין לא הצלחתם להגדיר את הגדרות ה-GC, פנו אל התמיכה של Apigee Edge.