การแก้ไขการตั้งค่าหน่วยความจํา 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
SymasLDAP ไม่มี แอปที่มาพร้อมเครื่อง3 แอปที่มาพร้อมเครื่อง3
ผู้ดูแลสวนสัตว์ zookeeper.properties 2048MB 2048MB
หมายเหตุ

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) ได้ที่ ข้อกำหนดในการติดตั้ง

เปลี่ยนขนาดหน่วยความจำฮีป

หากต้องการเปลี่ยนการตั้งค่าหน่วยความจำฮีป ให้แก้ไขไฟล์คุณสมบัติของคอมโพเนนต์ เช่น สำหรับ 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

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

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

พร็อพเพอร์ตี้ คำอธิบาย
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