Rabbitmq - ความคาดหวังด้านประสิทธิภาพ / ขนาดที่สมเหตุสมผล


13

ฉันจะขอบคุณถ้าใครสามารถชี้ให้ฉันไปในทิศทางของตัวเลข / ข้อ จำกัด ที่สมเหตุสมผลเกี่ยวกับ rabbitmq (บนฮาร์ดแวร์ "เฉลี่ย" fwiw) หรือโพสต์ประสบการณ์ของคุณพร้อมกับประสิทธิภาพ ฉันพยายามที่จะรับรู้ถึงความสามารถของจำนวนคิวจำนวนสมาชิกในคิวผลที่ตามมาจากการมีผู้ฟังหลายร้อยหรือหลายพันคนในคิว fanout จำนวนยาก ๆ ที่ทุกคนอาจใช้กระต่ายในสภาพแวดล้อมที่มีความจุสูง


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

ดูแผนของCloudAMQP - นี่คือหมายเลขทดสอบประสิทธิภาพสำหรับการกำหนดค่าฮาร์ดแวร์บางอย่าง
Reinstate Monica - M. Schröder

คำตอบ:


11

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

จำนวนคิวถูก จำกัด โดย RAM ของคุณ ในทางกลับกันจำนวนข้อความที่กำลังเล่นไม่ได้ถูก จำกัด โดย RAM เพราะ RabbitMQ จะส่งออกไปยังดิสก์โดยอัตโนมัติ เมื่อฉันบังเอิญได้รับข้อความเกือบ 8 ล้านข้อความในเซิร์ฟเวอร์การพัฒนาเมื่อฉันไม่ได้สนใจ

นอกจากนี้ยังไม่มีการ จำกัด ขนาดของข้อความ แต่คุณควรคิดสองครั้งจริง ๆ ถ้าขนาดของข้อความเดียวเกิน 512K ฉันลงเอยด้วยการใช้แคชหน่วยความจำเพื่อส่งผ่านวัตถุขนาดใหญ่ระหว่างแอปพลิเคชันและส่งข้อความควบคุมที่มีขนาดเล็กลงซึ่งมีคีย์ memcache เท่านั้น แต่ถ้าคุณต้องการคุณสามารถส่งวัตถุ JPEG และไบนารีขนาดใหญ่เช่นไฟล์ JAR เป็นข้อความได้

จำนวนสมาชิกคือขีด จำกัด ของระบบปฏิบัติการเนื่องจากผู้สมัครสมาชิกต้องการเปิดซ็อกเก็ต TCP อย่างน้อยหนึ่งแห่ง แน่นอนว่าสามารถปรับได้ในระบบปฏิบัติการส่วนใหญ่ดังนั้นระยะของคุณจะแตกต่างกันไปและนั่นคือเหตุผลที่คุณต้องทดสอบแบบจำลองของคุณ ฉันใช้ JMETER เพื่อทดสอบการใช้งานเว็บของเราและฉันเพิ่งค้นพบปลั๊กอิน AMQP นี้https://github.com/jlavallee/JMeter-Rabbit-AMQPแต่ยังไม่ได้ใช้ ไม่ว่าในกรณีใด ๆ นี่เป็นการทดสอบชนิดหนึ่งที่จะบอกคุณได้อย่างรวดเร็วว่าฮาร์ดแวร์ของคุณ (หรือการกำหนดค่า VM) จะจัดการได้อย่างสมเหตุสมผล

สิ่งเดียวที่ยากที่สุดที่คุณมีคือการทดสอบผู้บริโภคจำนวนมากในการจัดคิว fanout คุณอาจต้องการเปรียบเทียบโดยใช้การแลกเปลี่ยนหัวข้อแทนโดยผู้บริโภคที่สมัครรับข้อมูลโดยใช้คีย์การเชื่อมโยงตัวแทน (*) ซึ่งได้ผลลัพธ์ที่เหมือนกัน ลองใช้การทดสอบนี้กับเครื่องจักรที่แตกต่างกันมากเท่าที่จะทำได้เพื่อให้แน่ใจว่าคุณไม่ได้ทำงานในคอขวดที่เกิดจากเซิร์ฟเวอร์เดียวที่ใช้กระบวนการผู้บริโภค PS ที่ปลั๊กอิน Jmeter ดูเหมือนว่ามันอาจเป็นประโยชน์ในการจำลองผู้บริโภค


6

นี่ไม่ใช่คำถามที่ตอบได้จริง ๆ - มีปัจจัยมากเกินไป (คำจำกัดความการเคลื่อนย้ายของฮาร์ดแวร์ "เฉลี่ย" ขนาดของข้อความในคิวจำนวนผู้บริโภคและความถี่ที่พวกเขาสำรวจความคิดเห็น / ความรวดเร็วในการทำงานของข้อความ ฯลฯ .) คุณจำเป็นต้องสร้างมาตรฐานให้กับสภาพแวดล้อมของคุณ

ที่กล่าวมาให้ตรวจสอบการอภิปรายของประสิทธิภาพ RabbitMQ เหล่านี้ (รวมถึงแนวคิดบางประการเกี่ยวกับวิธีที่คุณสามารถสร้างมาตรฐานการติดตั้งของคุณเพื่อดูสิ่งที่คุณคาดหวังจาก Rabbit):


1
ฉันตระหนักถึงตัวแปรมากมาย นั่นเป็นเหตุผลที่ฉันพูดถึงสิ่งต่าง ๆ เช่นฮาร์ดแวร์ "โดยเฉลี่ย" ในเครื่องหมายคำพูดเมื่อฉันเข้าใจว่าความคิดนั้นคลุมเครือ อย่างไรก็ตามฉันคิดว่าตัวเลขบางอย่างที่มาจากประสบการณ์ของผู้คนจะมีประโยชน์ ขอบคุณสำหรับการอ้างอิง
user21640

1
@ user21640 ไม่ใช่แค่ฮาร์ดแวร์ที่เพิ่มความคลุมเครือให้กับคำถามของคุณ - การซื้อขายด้วยความถี่สูงอาจมีแนวคิดที่แตกต่างกันของ "ความจุสูง" มากกว่าที่คุณหรือฉันทำและคำจำกัดความที่แตกต่างกันของประสิทธิภาพที่ยอมรับได้ ในท้ายที่สุดเพียงคนเดียวที่มีเรื่องประสบการณ์เป็นคุณในสภาพแวดล้อมของคุณและในประสบการณ์ของผมคนหนึ่งที่ดีวางแผนมาตรฐานท้องถิ่นเป็นมูลค่าหลายพันรายงานภายนอกเมื่อมันมาถึงความเชื่อมั่นในการวางแผนกำลังการผลิต - คุณไม่เคยรู้เมื่อภาระงานของคุณคือกรณีพยาธิวิทยา: -)
voretaq7
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.