การแก้ไขการตั้งค่าหน่วยความจํา 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
หมายเหตุ

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-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 ในโปรแกรมประมวลผลข้อความ 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 ที่ไม่ได้ควบคุมโดยพร็อพเพอร์ตี้ที่ระบุไว้ข้างต้น คุณสามารถส่งผ่านแฟล็กหรือค่า JVM เพิ่มเติมสําหรับคอมโพเนนต์ Edge ใดก็ได้ Bash จะอ่านไฟล์ *.properties และควรใส่เครื่องหมาย '(เครื่องหมายคำพูดเดี่ยว) เพื่อเก็บอักขระตามตัวอักษร หรือใส่เครื่องหมาย "(เครื่องหมายคำพูดคู่) หากต้องการการขยายเชลล์

  • 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