การแก้ไขการตั้งค่าหน่วยความจํา Java

คุณอาจต้องเปลี่ยนขนาดของหน่วยความจำฮีปหรือขนาดข้อมูลเมตาของคลาสสำหรับโหนดที่เรียกใช้คอมโพเนนต์ Private Cloud แบบ Java ทั้งนี้ขึ้นอยู่กับข้อกำหนดด้านการรับส่งข้อมูลและการประมวลผล

ส่วนนี้จะระบุขนาดหน่วยความจำฮีปของ Java เริ่มต้นและที่แนะนำ รวมถึงกระบวนการเปลี่ยนค่าเริ่มต้น สุดท้ายนี้ ส่วนนี้จะอธิบายวิธีเปลี่ยนการตั้งค่า JVM อื่นๆ โดยใช้ไฟล์พร็อพเพอร์ตี้

ขนาดหน่วยความจำฮีปเริ่มต้นและที่แนะนำ

ตารางต่อไปนี้แสดงขนาดหน่วยความจำฮีปของ Java เริ่มต้นและที่แนะนำสำหรับคอมโพเนนต์ Private Cloud ที่ใช้ Java

ส่วนประกอบ ชื่อไฟล์ Properties ค่าเริ่มต้น
ขนาดฮีป
แนะนำ
ขนาดฮีป
รันไทม์
Cassandra ไม่มี กำหนดค่าโดยอัตโนมัติ1 กำหนดค่าโดยอัตโนมัติ1
Message Processor message-processor.properties 512MB 3GB - 6GB2
เราเตอร์ router.properties 512MB 512MB
Analytics
เซิร์ฟเวอร์ Postgres postgres-server.properties 512MB 512MB
เซิร์ฟเวอร์ Qpid qpid-server.properties 512MB 2GB - 4GB
การจัดการ
เซิร์ฟเวอร์การจัดการ management-server.properties 512MB 512MB
UI ui.properties 512MB 512MB
OpenLDAP ไม่มี แอปที่มาพร้อมเครื่อง3 แอปที่มาพร้อมเครื่อง3
ผู้ดูแลสวนสัตว์ zookeeper.properties 2048MB 2048MB
Notes

1 Cassandra จะคำนวณขนาดฮีปสูงสุดแบบไดนามิกเมื่อเริ่มทำงาน ปัจจุบันนี้มีขนาดครึ่งหนึ่งของหน่วยความจำระบบทั้งหมด โดยมีขนาดไม่เกิน 8192 MB ดูข้อมูลเกี่ยวกับการตั้งค่าขนาดฮีปได้ที่เปลี่ยนขนาดหน่วยความจำฮีป

2 สำหรับตัวประมวลผลข้อความ Apigee แนะนำให้ตั้งค่าขนาดฮีประหว่าง 3 GB ถึง 6 GB เพิ่มขนาดฮีปให้มากกว่า 6 GB หลังทำการทดสอบประสิทธิภาพแล้วเท่านั้น

หากการใช้งานฮีปใกล้ถึงขีดจำกัดสูงสุดในระหว่างการทดสอบประสิทธิภาพ ให้เพิ่มขีดจำกัดสูงสุด ดูข้อมูลเกี่ยวกับการตั้งค่าขนาดฮีปได้ที่เปลี่ยนขนาดหน่วยความจำฮีป

3 คอมโพเนนต์ Private Cloud บางอย่างเท่านั้นที่มีการใช้งานใน Java เนื่องจากแอปดังกล่าวไม่ได้ใช้ Java แอปที่เรียกใช้บนแพลตฟอร์มโฮสต์ดั้งเดิมจึงไม่มีขนาดฮีปของ Java ที่กำหนดค่าได้ แต่จะอาศัยระบบโฮสต์สำหรับการจัดการหน่วยความจำแทน

หากต้องการกำหนดจำนวนหน่วยความจำทั้งหมดที่ Apigee จะแนะนำให้คุณจัดสรรให้คอมโพเนนต์ที่ใช้ Java ในโหนด ให้เพิ่มค่าที่ระบุไว้ด้านบนสำหรับแต่ละคอมโพเนนต์ในโหนดนั้น ตัวอย่างเช่น หากโหนดของคุณโฮสต์ทั้งเซิร์ฟเวอร์ Postgres และ Qpid Apigee แนะนำให้จัดสรรหน่วยความจำรวมระหว่าง 2.5 GB ถึง 4.5 GB

ดูรายการฮาร์ดแวร์ที่จำเป็น (เช่น 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

ขนาดฮีปต่ำสุด ค่าเริ่มต้นคือค่าที่ระบุไว้ในขนาดหน่วยความจำฮีปเริ่มต้นและที่แนะนำ

การตั้งค่านี้เป็นไปตามตัวเลือก -Xms ของ Java

bin_setenv_max_mem

ขนาดฮีปสูงสุด ค่าเริ่มต้นคือค่าที่ระบุไว้ในขนาดหน่วยความจำฮีปเริ่มต้นและที่แนะนำ

การตั้งค่านี้เป็นไปตามตัวเลือก -Xmx ของ Java

bin_setenv_meta_space_size

ขนาดข้อมูลเมตาเริ่มต้นของคลาส ค่าเริ่มต้นคือ bin_setenv_max_permsize ซึ่งค่าเริ่มต้นคือ 128 MB ในตัวประมวลผลข้อความ Apigee แนะนำให้ตั้งค่านี้เป็น 256 MB หรือ 512 MB ขึ้นอยู่กับการรับส่งข้อมูล

การตั้งค่านี้เป็นไปตามตัวเลือก -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 เนื่องจากพร็อพเพอร์ตี้ที่ระบุไว้ข้างต้นจะควบคุมค่าเหล่านี้

ดูเคล็ดลับเพิ่มเติมเกี่ยวกับการกำหนดค่าหน่วยความจำสำหรับคอมโพเนนต์ Private Cloud ได้ที่บทความนี้ในฟอรัม Edge