تعديل إعدادات ذاكرة Java

استنادًا إلى متطلبات عدد الزيارات والمعالجة، قد تحتاج إلى تغيير حجم ذاكرة heap أو حجم البيانات الوصفية للفئة للعقد التي تعمل على تشغيل مكونات "سحابة خاصة" المستندة إلى Java.

يقدّم هذا القسم أحجام ذاكرة كومة Java التلقائية والمُقترَحة، بالإضافة إلى عملية تغيير الإعدادات التلقائية. أخيرًا، يوضّح هذا القسم كيفية تغيير إعدادات JVM الأخرى باستخدام ملفات الخصائص.

أحجام ذاكرة الشريحة التلقائية والمُقترَحة

يسرد الجدول التالي أحجام ذاكرة Java التلقائية والمقترَحة لمكوّنات السحابة الإلكترونية الخاصة المستندة إلى Java:

المكوّن اسم ملف الخصائص التلقائي
حجم الذاكرة
الحجم
الحد الأقصى المسموح به لمساحة الذاكرة المؤقتة
وقت التشغيل
كاساندرا timing fixed in amara تم ضبطها تلقائيًا1 تم ضبطها تلقائيًا1
معالج الرسائل message-processor.properties 512 ميغابايت من 3 غيغابايت إلى 6 غيغابايت2
جهاز التوجيه router.properties 512 ميغابايت 512 ميغابايت
"إحصاءات"
خادم Postgres postgres-server.properties 512 ميغابايت 512 ميغابايت
خادم Qpid qpid-server.properties ‫512 ميغابايت من 2 إلى 4 غيغابايت
الإدارة
خادم الإدارة management-server.properties ‫512 ميغابايت ‫512 ميغابايت
واجهة المستخدم ui.properties ‫512 ميغابايت ‫512 ميغابايت
OpenLDAP timing fixed in amara التطبيق الأصلي3 تطبيق محلي3
حارس حديقة حيوانات zookeeper.properties 2048 ميغابايت 2048 ميغابايت
ملاحظات

1 تحسب Cassandra الحد الأقصى لحجم الحِزمة ديناميكيًا عند بدء التشغيل. في الوقت الحالي، يمثّل ذلك نصف إجمالي ذاكرة النظام، بحد أقصى 8192 ميغابايت. للحصول على معلومات عن ضبط حجم الذاكرة المؤقتة، يُرجى الاطّلاع على مقالة تغيير حجم الذاكرة المؤقتة.

2 بالنسبة إلى معالجات الرسائل، تنصح Apigee بضبط حجم ملف heap على ما بين 3 غيغابايت و6 غيغابايت. لا تزيد حجم الحِزمة عن 6 غيغابايت إلا بعد إجراء اختبارات الأداء.

إذا اقترب استخدام الحِزمة من الحد الأقصى أثناء اختبار الأداء، عليك زيادة الحد الأقصى. للحصول على معلومات عن ضبط حجم الذاكرة المؤقتة، يُرجى الاطّلاع على تغيير حجم ذاكرة الذاكرة المؤقتة.

3 لا يتم تنفيذ بعض مكوّنات "السحابة الإلكترونية الخاصة" باستخدام Java. ولأنّ التطبيقات التي تعمل بشكل أصلي على النظام الأساسي للمضيف ليست مستندة إلى Java، لا تتضمّن أحجامًا قابلة للضبط من ذاكرة Java، بل تعتمد بدلاً من ذلك على النظام المضيف لإدارة الذاكرة.

لتحديد إجمالي مقدار الذاكرة التي تنصحك Apigee بتخصيصها للمكونات المستندة إلى Java في إحدى العقد، أضِف القيم المدرَجة أعلاه لكل مكوّن في تلك العقدة. على سبيل المثال، إذا كانت نهايتك تستضيف خادمَي Postgres وQpid، تنصح Apigee بأن يكون حجم الذاكرة المخصّص مجتمعًا بين 2.5 غيغابايت و4.5 غيغابايت.

للحصول على قائمة بالأجهزة المطلوبة (مثل ذاكرة الوصول العشوائي)، يُرجى الاطّلاع على متطلبات التثبيت.

تغيير أحجام ذاكرة الكومة

لتغيير إعدادات الذاكرة لأجزاء من الذاكرة، عدِّل ملف الخصائص للمكوّن. على سبيل المثال، بالنسبة إلى Message Processor، عدِّلملف /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

الحد الأدنى لحجم الحِزمة ويستند الإعداد التلقائي إلى القيم المدرَجة في أحجام الذاكرة التلقائية والمقترَحة.

يتطابق هذا الإعداد مع خيار Java -Xms.

bin_setenv_max_mem

الحدّ الأقصى لحجم الذاكرة ويستند الإعداد التلقائي إلى القيم المدرَجة في أحجام الذاكرة التلقائية والمقترَحة.

يتطابق هذا الإعداد مع خيار Java -Xmx.

bin_setenv_meta_space_size

الحجم التلقائي للبيانات الوصفية للفئة يتم ضبط القيمة التلقائية على قيمة bin_setenv_max_permsize، والتي تكون تلقائيًا 128 ميغابايت. في Message Processor (معالج الرسائل)، توصیه Apigee بضبط هذه القيمة على 256 ميغابايت أو 512 ميغابايت، استنادًا إلى عدد الزيارات.

يتطابق هذا الإعداد مع خيار 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

تغيير سمات Java Virtual Machine (الآلة الافتراضية لـ Java) الأخرى

بالنسبة إلى إعدادات Java التي لا تتحكّم فيها السمات المدرَجة أعلاه، يمكنك أيضًا تمرير علامات JVM أو قيم إضافية في أيّ مكوّن Edge. ستتم قراءة ملفات *.properties في بواسطة Bash ويجب وضعها بين '(علامات اقتباس مفردة) للحفاظ على الأحرف الحرفية أو "(علامات اقتباس مزدوجة) إذا كنت بحاجة إلى توسيع وظائف shell.

  • bin_setenv_ext_jvm_opts: اضبط أي سمة Java لم تحددها المواقع الأخرى. مثلاً:
    bin_setenv_ext_jvm_opts='-XX:MaxGCPauseMillis=500'

    ومع ذلك، لا تستخدِم bin_setenv_ext_jvm_opts لتحديد-Xms أو -Xmx أو -XX:MetaspaceSize لأنّه يتم التحكّم في هذه القيم من خلال السمات المدرَجة أعلاه.

للحصول على نصائح إضافية حول ضبط الذاكرة لمكوّنات "سحابة خاصة"، يُرجى الاطّلاع على هذه المقالة في منتديات Edge.