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

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

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

גודל ברירת מחדל של זיכרון ערימה מומלץ וגודל ברירת המחדל

בטבלה הבאה מפורטים גדלי הזיכרון של ערימה (heap) שמוגדרים כברירת מחדל ומומלצים ל-Java. רכיבי ענן פרטי:

רכיב שם הקובץ של המאפיינים ברירת מחדל
גודל הערימה
מומלץ
גודל הערימה
זמן ריצה
קסנדרה לא רלוונטי מוגדרים באופן אוטומטי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
OpenLDAP לא רלוונטי אפליקציה מקורית3 אפליקציה מקורית3
שומר גן חיות zookeeper.properties 2,048MB 2,048MB
הערות

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

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

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

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

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

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

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

נכס תיאור
bin_setenv_min_mem

הגודל המינימלי של אשכול. ברירת המחדל מבוססת על הערכים שמופיעים ב: גודל ברירת מחדל של זיכרון ערימה מומלץ.

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

bin_setenv_max_mem

הגודל המקסימלי של ערימה (heap). ברירת המחדל מבוססת על הערכים שמופיעים ב: גודל ברירת מחדל של זיכרון ערימה מומלץ.

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

bin_setenv_meta_space_size

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

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

כשמגדירים מאפיינים של גודל ערימה בצומת, צריך להשתמש ב-'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, כי הערכים האלה הם נקבע על ידי המאפיינים שמפורטים למעלה.

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