ฮาร์ดแวร์ใดที่ทำให้เซิร์ฟเวอร์ MongoDB ดี หาได้ที่ไหน


13

สมมติว่าคุณอยู่บน dell.com ในขณะนี้และคุณกำลังซื้อเซิร์ฟเวอร์เพื่อเรียกใช้ฐานข้อมูล MongoDB สำหรับการเริ่มต้นเล็ก ๆ ของคุณ คุณจะต้องจัดการกับการเขียนและอ่านนับหมื่นต่อนาที (แต่เป็นวัตถุขนาดเล็ก) คุณจะไปสำหรับโปรเซสเซอร์ 2 ตัวหรือไม่? ลงทุนมากขึ้นกับ RAM?

ฉันได้ยิน (แก้ไขให้ฉันถ้าฉันผิด) MongoDB จัดการได้มากที่สุดเท่าที่จะทำได้บน RAM แล้วล้างข้อมูลทุกอย่างในดิสก์ในกรณีนี้ฉันควรลงทุน CPU ที่มีแคช L2 ขนาดใหญ่อาจ> RAM 40GB และไดรฟ์ของรัฐที่มั่นคง .. ใช่มั้ย

ฉันจะดีกว่านี้ด้วยเซิร์ฟเวอร์ระดับ high-end (~ $ 11,309, โปรเซสเซอร์ราคาแพง 2 ตัว, RAM 96GB) หรือ 2x (~ $ 6,419, โปรเซสเซอร์ราคาแพง 2 ตัว, RAM ขนาด 12GB)

Dell ใช้ได้หรือคุณมีความอยากอาหารดีกว่ากัน? (ฉันอยู่นอกสหรัฐฯบนประเทศโปรตุเกส)


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

เห็นด้วยกับทอม ทำไมไม่ลองอินสแตนซ์บนคลาวด์?

1
@mixdev คุณผิด: "Linux, NUMA และ MongoDB มีแนวโน้มที่จะไม่ทำงานร่วมกันได้ดี" แหล่งที่มา: mongodb.org/display/DOCS/NUMA
Shadok

คำตอบ:


19

เริ่มแรกคุณจะต้องการเพิ่มพูน RAM RAM ที่คุณต้องการนั้นขึ้นอยู่กับปริมาณข้อมูลที่คุณจัดเก็บจำนวนคอลเลกชันดัชนีในคอลเลกชันเหล่านั้นรูปแบบการเข้าถึงข้อมูล ฯลฯ ปัจจัยหลายอย่าง

สิ่งที่สำคัญที่สุดคือมี RAM เพียงพอที่จะเก็บดัชนีของคุณใน RAM มิฉะนั้นประสิทธิภาพของคุณจะลดลงอย่างมากเนื่องจากเซิร์ฟเวอร์ของคุณจะหน้าอย่างต่อเนื่องในขณะที่ Mongo ย้ายไฟล์ที่แมปหน่วยความจำเข้าและออกจาก RAM แม้ว่าทั้งหมดนี้เราไม่ได้เห็นความเร็วในการเขียนได้รับผลกระทบ แต่อย่างอื่นก็คือ การประมวลผลเขียนคิวล้างข้อมูลทิ้ง ฯลฯ ทั้งหมดจะได้รับความนิยมอย่างมากเมื่อดัชนีของคุณไม่พอดีกับ RAM อีกต่อไป

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


1
จากประสบการณ์ของเราเมื่อ Mongo ไม่มี RAM สำหรับการสืบค้นไม่เพียง แต่แบบสอบถามจะไปที่ docs (ทำงานตลอดไป 5 นาที 15 นาทีชั่วโมง ... ) แต่การแทรกเริ่มล้มเหลว
Jonesome Reinstate Monica


6

ด้วย MongoDB สิ่งที่คุณต้องการคือแรม แล้ว RAM เพิ่มเติม การซื้อแรมไม่สามารถทำร้ายได้


3

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


3

ครั้งแรก - ซื้อ RAM ให้มากที่สุด ปัจจัยที่ จำกัด ที่สองคือความเร็วดิสก์ RAID ช่วย SSD ช่วย เศษเพิ่มเติมช่วย วัดปริมาณงานเปรียบเทียบกับประสิทธิภาพของดิสก์และเวลาตอบสนองที่ต้องการจากนั้นตัดสินใจว่าจะทำอย่างไรภายในงบประมาณที่คุณมี


1

ฉันสงสัยว่าโซลูชัน Linux แบบคลัสเตอร์จะเป็นทางเลือกที่ดีกว่าและราคาถูกกว่าหรือไม่

MongoDB ช่วยให้คุณกระจายข้อมูลผ่านเซิร์ฟเวอร์จำนวนมาก นั่นจะเป็นไปไม่ได้ด้วยเซิร์ฟเวอร์เดียว

ฉันคิดว่า MongoDB เป็นหนึ่งในขั้นตอนต่อไปหลังจากค้นพบว่าการปรับใช้ฐานข้อมูลเชิงสัมพันธ์บนเซิร์ฟเวอร์บีบแตรนั้นไม่ได้ขยายขนาดเพียงพอ


1

การเขียนหลายหมื่นครั้งต่อนาทีเป็นอะไร คุณสามารถรับ 50.000 หรือมากกว่านั้นเขียนต่อวินาทีบนฮาร์ดแวร์ที่ดี รายละเอียดฮาร์ดแวร์ขึ้นอยู่กับสิ่งที่คุณพยายามทำ โดยทั่วไปแล้วแรมเพียงพอสำหรับฐานข้อมูลขนาดใหญ่และระบบ IO ที่รวดเร็วนั้นมีความสำคัญข้าง CPU ที่เหมาะสม ...


0

สิ่งสำคัญคือต้องสร้างพื้นฐานที่มั่นคงก่อนออกแบบฮาร์ดแวร์ของคุณ โดยทั่วไปคาดว่าคำถามประเภทนี้จะถูกถามโดยคนที่มีประสบการณ์ mongoDB ก่อนใครก็สามารถพิจารณาตอบคำถามของคุณ

สถิติการสมัครปัจจุบัน (ถ้ามี)

  • บันทึกรวมถึงวันที่?
  • กำลังเริ่มการจัดเก็บข้อมูลประมาณ?
  • คาดว่า% การเติบโต / เดือน
  • ขนาดเอกสารเฉลี่ย?

โหลดงานการกลืนกินข้อมูล

  • ใหม่การแทรก / วันสูงสุดและค่าเฉลี่ยต่อวินาทีหรือไม่
  • อัปเดต / วันสูงสุดและค่าเฉลี่ยต่อวินาทีหรือไม่
  • อ่าน / วันสูงสุดและค่าเฉลี่ย / วินาทีหรือไม่
  • จำนวนเอกสารเฉลี่ยที่ส่งคืนต่อการสืบค้น: 70
  • ลบ / วันสูงสุดและค่าเฉลี่ย / วินาที: ไม่มี
  • จะมีการโหลด / อัปเดตจำนวนมากหรือไม่ ถ้าเป็นเช่นนั้นมีขนาดใหญ่และบ่อยแค่ไหน?
  • จะมีเอกสารประเภทต่าง ๆ จำนวนเท่าใด
  • แต่ละอันมีกี่อัน?
  • คุณคาดหวังว่าเอกสารของคุณจะเป็นอย่างไร (ตัวอย่างเอกสาร)

รูปแบบการสืบค้น & ความคาดหวังด้านประสิทธิภาพ

  • อ่านการตอบสนอง SLA?
  • เขียนคำตอบ SLA?
  • อ่านตามช่วงหรือสุ่ม?

รูปแบบการเข้าถึงที่คาดไว้

  • จำนวนดัชนีรองที่จำเป็น?
  • จำนวนคุณสมบัติ?
  • เรียงลำดับเงื่อนไขหรือไม่
  • เดี่ยวหรือผสม?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.