שינוי הגדרות הזיכרון של Java

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

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

גדלים מומלצים של זיכרון Heap

בטבלה הבאה מפורטים גדלי ברירת המחדל וגדלי הזיכרון המומלצים של Java Heap לרכיבי Private Cloud מבוססי-Java:

רכיב שם קובץ המאפיינים ברירת מחדל
גודל הערימה
גודל הערימה המומלץ
זמן ריצה
Cassandra לא רלוונטי הגדרה אוטומטית1 הגדרה אוטומטית1
מעבד בקשות message‑processor.properties ‫512MB ‫3GB עד 6GB‏2
נתב router.properties ‫512MB ‫512MB
Analytics
שרת Postgres postgres‑server.properties ‫512MB ‫512MB
שרת Qpid qpid‑server.properties ‫512MB ‫2GB – 4GB
ניהול
שרת ניהול management‑server.properties ‫512MB ‫512MB
ממשק משתמש ui.properties ‫512MB ‫512MB
SymasLDAP לא רלוונטי אפליקציה מקורית3 אפליקציה מקורית3
מטפל בבעלי חיים zookeeper.properties 2048MB 2048MB
הערות

1 Cassandra מחשב באופן דינמי את גודל הערימה המקסימלי כשהוא מופעל. בשלב הזה, זה חצי מזיכרון המערכת הכולל, עם מקסימום של 8,192MB. מידע על הגדרת גודל הערימה זמין במאמר שינוי גודל הזיכרון של הערימה.

2 עבור מעבדי הודעות, מומלץ ב-Apigee להגדיר את גודל הערימה בין 3GB ל-6GB. מומלץ להגדיל את גודל ה-heap מעבר ל-6GB רק אחרי שמבצעים בדיקות ביצועים.

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

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

כדי לקבוע כמה זיכרון כולל מומלץ להקצות לרכיבים מבוססי Java בצומת, צריך לחבר את הערכים שמופיעים למעלה לכל רכיב בצומת. לדוגמה, אם הצומת מארח גם את שרתי Postgres וגם את שרתי Qpid, ב-Apigee מומלץ להקצות זיכרון משולב בנפח של 2.5GB עד 4.5GB.

רשימה של רכיבי חומרה נדרשים (כמו זיכרון RAM) מופיעה במאמר דרישות ההתקנה.

שינוי הגודל של זיכרון הערימה

כדי לשנות את הגדרות הזיכרון של הערימה, עורכים את קובץ המאפיינים של הרכיב. לדוגמה, כדי לערוך את מעבד ההודעות, צריך לערוך את הקובץ /opt/apigee/customer/application/message-processor.properties.

אם הקובץ message-processor.properties לא קיים, או אם הקובץ התואם .properties לא קיים עבור רכיב Edge כלשהו, צריך ליצור אותו ואז לשנות את הבעלות על הקובץ למשתמש apigee, כמו בדוגמה הבאה:

chown apigee:apigee /opt/apigee/customer/application/message-processor.properties

אם הרכיב מותקן בכמה מכונות, כמו מעבד ההודעות, צריך לערוך את קובץ המאפיינים בכל המכונות שמארחות את הרכיב.

בטבלה הבאה מפורטים המאפיינים שצריך לערוך כדי לשנות את גודל הערימה:

נכס תיאור
bin_setenv_min_mem

גודל הערימה המינימלי. ערך ברירת המחדל מבוסס על הערכים שמפורטים במאמר גדלי ברירת מחדל וגדלים מומלצים של זיכרון Heap.

ההגדרה הזו תואמת לאפשרות Java -Xms.

bin_setenv_max_mem

הגודל המקסימלי של הערימה. ערך ברירת המחדל מבוסס על הערכים שמפורטים במאמר גדלי ברירת מחדל וגדלים מומלצים של זיכרון Heap.

ההגדרה הזו תואמת לאפשרות Java -Xmx.

bin_setenv_meta_space_size

גודל ברירת המחדל של המטא-נתונים של הכיתה. ערך ברירת המחדל מוגדר לערך של bin_setenv_max_permsize, שמוגדר כברירת מחדל ל-128MB. במעבד ההודעות, מומלץ להגדיר את הערך הזה ל-256MB או ל-512MB, בהתאם לתנועת הנתונים.

ההגדרה הזו תואמת לאפשרות Java -XX:MetaspaceSize.

כשמגדירים מאפיינים של גודל הערימה בצומת, צריך להשתמש בסיומת m כדי לציין מגה-בייט, כמו בדוגמה הבאה:

bin_setenv_min_mem=4500m
bin_setenv_max_mem=4500m
bin_setenv_meta_space_size=1024m

אחרי שמגדירים את הערכים בקובץ המאפיינים, מפעילים מחדש את הרכיב:

/opt/apigee/apigee-service/bin/apigee-service component restart

לדוגמה:

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

שינוי מאפיינים אחרים של JVM

להגדרות Java שלא נשלטות על ידי המאפיינים שצוינו למעלה, אפשר גם להגדיר את המאפיינים הבאים בקובץ המאפיינים המתאים לכל רכיב Edge:

  • bin_setenv_ext_jvm_opts: הגדרה של מאפיין Java שלא צוין על ידי מאפיינים אחרים. לדוגמה:
    bin_setenv_ext_jvm_opts=-XX:MaxGCPauseMillis=500

    עם זאת, אל תשתמשו ב-bin_setenv_ext_jvm_opts כדי להגדיר את -Xms, -Xmx או -XX:MetaspaceSize, כי הערכים האלה נשלטים על ידי המאפיינים שמופיעים למעלה.

טיפים נוספים להגדרת הזיכרון לרכיבי Private Cloud זמינים במאמר הזה בפורומים של Edge.