Edge สำหรับ Private Cloud เวอร์ชัน 4.52.01 จะมาพร้อมกับ Qpid Broker-J 8.0.6 หน้านี้อธิบายข้อควรพิจารณาเกี่ยวกับหน่วยความจำและดิสก์สำหรับคอมโพเนนต์ apigee-qpidd
ของ Edge สำหรับ Private Cloud (ที่มีโบรกเกอร์ที่ใช้ Java)
ส่วนด้านล่างใช้กับกรณีการใช้งาน Qpid ของ Apigee โดยเฉพาะและอธิบายวิธีปรับแต่ง Qpid โดยใช้กลไกการกำหนดค่าของ Apigee
Qpid ใน Apigee
ใน Apigee จะมีการใช้ Qpid ในเวิร์กโฟลว์หลัก 2 อย่างดังนี้
- Analytics
- การสร้างรายได้
ในเวิร์กโฟลว์ทั้ง 2 รายการนี้ ผู้ประมวลผลข้อความจะสร้างข้อความ ซึ่งจะรวบรวมเป็นชุดและพุชไปยัง Qpid สำหรับ Analytics ข้อความจะถูกอ่านโดย Qpid-server สำหรับการสร้างรายได้ ข้อความจะถูกอ่านโดยเซิร์ฟเวอร์การให้คะแนน (ส่วนหนึ่งของเซิร์ฟเวอร์การจัดการ) เมื่ออ่านแล้ว ระบบจะแยกข้อความที่จัดกลุ่มและนำเข้า
การกำหนดค่าที่แนะนำ
ส่วนต่อไปนี้จะอธิบายการกำหนดค่าที่แนะนำสำหรับหน่วยความจำและดิสก์ที่มี Qpid การกำหนดค่าเหล่านี้อิงตามข้อความเดียวขนาด 2KB สำหรับ Analytics หรือการสร้างรายได้ ด้วยขนาดกลุ่มเริ่มต้นที่ 50 แต่ละข้อความใน Qpid จะมีขนาดประมาณ 100 KB Apigee ช่วยให้พร็อกซีแก้ไขและเพิ่มข้อมูลเพิ่มเติมในข้อความได้ (Analytics หรือการสร้างรายได้) ในกรณีร้ายแรง การทำเช่นนี้อาจทำให้ขนาดของข้อความเดียวและข้อความกลุ่มโดยรวมใน Qpid มีการเปลี่ยนแปลงอย่างมาก แม้ว่าคำแนะนำทั่วไปเกี่ยวกับหน่วยความจำและดิสก์ในส่วนด้านล่างจะยังเป็นจริงแม้ในกรณีนั้นก็ตาม คุณอาจต้องปรับเปลี่ยน Qpid เพิ่มเติมเพื่อให้การทำงานเป็นไปอย่างราบรื่น
หน่วยความจำ
Qpid Broker ใช้หน่วยความจำ 2 ประเภท ได้แก่ หน่วยความจำแบบปิดและหน่วยความจำฮีป Qpid จะจัดเก็บข้อความในหน่วยความจำที่ไม่ได้ใช้ฮีป รวมถึงใช้หน่วยความจำฮีปสำหรับงานภายในของตนเอง ข้อความส่วนตัวไปยังคิวและการแลกเปลี่ยน ฯลฯ ในสถานการณ์ส่วนใหญ่ Apigee แนะนำให้คุณกำหนดอัตราส่วนระหว่างหน่วยความจำนอกหน่วยความจำกับหน่วยความจำฮีปสำหรับ Qpid Broker ไว้ที่ 3:1
ข้อความในหน่วยความจำแบบประหยัดพื้นที่จะยังคงอยู่ในดิสก์ นอกจากนี้ หากการใช้งานหน่วยความจำแบบนอกระบบทั้งหมดละเมิดเกณฑ์ที่กำหนด จะมีการกำหนดค่า Qpid ให้ส่งข้อความเพิ่มเติมไปยังดิสก์
โดยค่าเริ่มต้น Apigee จะคํานวณฮีปและหน่วยความจำที่แทบไม่มีทรัพยากรของ Qpid Broker โดยอิงตามหน่วยความจำที่มีบนโหนด สคริปต์ของ Apigee มีขนาดไม่เกินขีดจำกัด 4 GB สำหรับฮีปและหน่วยความจำนอกระบบของ Qpid Broker หากต้องการลบล้างขีดจำกัดเหล่านี้ คุณใช้การกำหนดค่า 2 แบบด้านล่างเพื่อตั้งค่าของคุณเองสำหรับหน่วยความจำฮีปและหน่วยความจำนอกฮีปของ Qpid ได้
- การกำหนดค่าสำหรับหน่วยความจำฮีป:
bin_run-qpidd_qpid.run.jvm.max_vm_heap=1024m
- การกำหนดค่าสำหรับหน่วยความจำแบบปิด:
bin_run-qpidd_qpid.run.jvm.max_direct_memory_size=3072m
ดูวิธีเปลี่ยนการกำหนดค่า Qpid เพื่อดูวิธีลบล้างการกำหนดค่า
ดูข้อมูลเพิ่มเติมได้ที่ การอ้างอิง Qpid ของ Apache สำหรับหน่วยความจำ
ดิสก์
ไดเรกทอรีข้อมูลของ Qpid Broker คือ $APIGEE_ROOT/data/apigee-qpidd
บันทึกของโบรกเกอร์ Qpid จะจัดเก็บอยู่ใน $APIGEE_ROOT/var/log/apigee-qpidd
ประสิทธิภาพของระบบไฟล์ที่โฮสต์ไดเรกทอรีข้อมูลเป็นกุญแจสำคัญในประสิทธิภาพของโบรกเกอร์โดยรวม เพื่อประสิทธิภาพที่ดีที่สุด ให้เลือกอุปกรณ์ที่มีเวลาในการตอบสนองต่ำและที่ไม่ได้ใช้โดยแอปพลิเคชันอื่น
Qpid Broker จะยังคงอยู่ในไดเรกทอรีข้อมูล โดยค่าเริ่มต้น โบรกเกอร์จะยอมรับข้อความจนกว่าระบบไฟล์ที่โฮสต์ไดเรกทอรีข้อมูลจะเต็ม 80% คุณสามารถแก้ไขเกณฑ์นี้ได้โดยการลบล้างการกำหนดค่าที่แสดงในตัวอย่างด้านล่างในแต่ละโหนด Qpid
bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60
ในตัวอย่างนี้ โบรกเกอร์จะปฏิเสธข้อความใหม่ เมื่อระบบไฟล์ข้อมูลที่เก็บอยู่เต็ม 60%
วิธีเปลี่ยนการกำหนดค่า Qpid
หากต้องการเปลี่ยนการกำหนดค่า Qpid ให้ทำดังนี้
- สร้างหรือแก้ไขไฟล์ต่อไปนี้
$APIGEE_ROOT/customer/application/qpidd.properties
- เพิ่ม นำออก หรือแก้ไขการกำหนดค่าตามความจำเป็น
เช่น หากต้องการเปลี่ยนหน่วยความจำฮีปสูงสุดของ Qpid Broker เป็น 6 GB ให้เพิ่มการลบล้างการกำหนดค่าต่อไปนี้ในไฟล์
bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
- บันทึกการเปลี่ยนแปลงและตรวจสอบว่าผู้ใช้
apigee
เป็นเจ้าของและสามารถอ่านไฟล์ได้ โดยทำดังนี้chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
- รีสตาร์ทกระบวนการ
qpidd
:apigee-service apigee-qpidd รีสตาร์ท