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

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

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

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

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

ส่วนประกอบ คุณสมบัติ ชื่อไฟล์ ค่าเริ่มต้น
ขนาดฮีป
แนะนำ
ขนาดฮีป
รันไทม์
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 สำหรับ Message Processor 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

หากคอมโพเนนต์ติดตั้งอยู่ในหลายเครื่อง เช่น Message Processor คุณจะต้องแก้ไขไฟล์คุณสมบัติในเครื่องทั้งหมดที่โฮสต์คอมโพเนนต์นั้น

ตารางต่อไปนี้แสดงพร็อพเพอร์ตี้ที่คุณแก้ไขเพื่อเปลี่ยนขนาดฮีป

พร็อพเพอร์ตี้ คำอธิบาย
bin_setenv_min_mem

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

การตั้งค่านี้สอดคล้องกับตัวเลือก Java -Xms

bin_setenv_max_mem

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

การตั้งค่านี้สอดคล้องกับตัวเลือก Java -Xmx

bin_setenv_meta_space_size

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

การตั้งค่านี้สอดคล้องกับตัวเลือก 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