Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

ข้อมูลเบื้องต้นเกี่ยวกับการปรับขนาดขนาดใหญ่ด้วย MongoDB

เผยแพร่ครั้งแรกเมื่อวันที่ 4 มิถุนายน 2018 ที่ ObjectRocket.com/blog

เราสามารถกำหนด การปรับขนาด เหมือนเอาเกล็ดออกจากตัวปลา อย่างไรก็ตาม ด้วยฐานข้อมูล การปรับขนาด หมายถึงความสามารถในการขยายเพื่อตอบสนองความต้องการเพิ่มเติมเกี่ยวกับพื้นที่เก็บข้อมูล, ดิสก์, RAM, CPU, รอบการประมวลผล, เครือข่าย หรือทรัพยากรอื่นๆ

ข้อมูลเบื้องต้นเกี่ยวกับการปรับขนาดขนาดใหญ่ด้วย MongoDB

คุณจะทราบได้อย่างไรว่าถึงเวลาปรับขนาดเมื่อใด

ทุกวันนี้ เป็นเรื่องปกติที่จะเห็นการเติบโตอย่างรวดเร็วของข้อมูลและอัตราการนำไปใช้อย่างรวดเร็วสำหรับแอปพลิเคชัน เช่น เมื่อแอปเริ่มแพร่ระบาดและการใช้งานเริ่มลดลง เมื่อสิ่งนี้เกิดขึ้น คุณจะเติบโตเร็วกว่าสภาพแวดล้อมเริ่มต้นของคุณอย่างรวดเร็ว การเติบโตดังกล่าวสามารถเกิดขึ้นได้เนื่องจากความต้องการพื้นที่จัดเก็บข้อมูลทางกายภาพ การเข้าถึงประสิทธิภาพ และความเสื่อมโทรมที่จะต้องใช้ทรัพยากรมากขึ้น คิดว่า CPU, RAM, ระบบเครือข่าย หรือการรวมกันของพื้นที่เหล่านั้นทั้งหมด คุณจะวางแผนการเติบโตในเชิงรุกหรือจะเลือกขยายเมื่อเริ่มเห็นประสิทธิภาพขนาดเล็ก

การปรับขนาดเชิงรุก

อาจมีรูปแบบทั่วไปอย่างน้อย 2 รูปแบบเมื่อคุณวางแผนที่จะปรับขนาดในเชิงรุก:

  • คุณกำลังมีแรงผลักดันทางการตลาดครั้งใหญ่ และจำนวนลูกค้าหรือปริมาณข้อมูลจะเพิ่มขึ้นอย่างมาก
  • การสมัครหรือธุรกิจของคุณมีแนวโน้มที่จะเป็นวัฏจักร (เช่น การซื้อในช่วงคริสต์มาส ปณิธานปีใหม่ และอื่นๆ) และคุณเห็นว่ากิจกรรมเพิ่มขึ้นซึ่งนำไปสู่การรวบรวมและรักษาปริมาณข้อมูลไว้สูง

อ่านโพสต์ของเรา:จะทราบได้อย่างไรว่าเมื่อใดจึงควรปรับขนาดอินสแตนซ์ MongoDB ของคุณ

ปรับขนาดแบบตอบสนอง

หากคุณประสบปัญหาคอขวดและคาดว่าจะเติบโตต่อไป คุณต้องคิดถึงการปรับขนาด

สัญญาณปัญหารวมถึงสิ่งต่าง ๆ เช่นข้อกังวลต่อไปนี้:

  • เพิ่มเวลาค้นหาสำหรับผู้ใช้ปลายทาง
  • เพิ่มเวลาในการเข้าสู่ระบบ
  • คำขอและเซิร์ฟเวอร์หยุดทำงาน
  • ข้อร้องเรียนเกี่ยวกับฐานข้อมูลจากนักพัฒนา
  • เวลาตอบสนองของเซิร์ฟเวอร์ช้าลง
  • เพิ่มภาระให้กับโฮสต์
  • หน่วยความจำไม่เพียงพอ
  • การเลือกตั้งโดยไม่ได้ตั้งใจ
  • ข้อผิดพลาดในบันทึก

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

คุณสามารถปรับขนาดแนวตั้ง .ได้ (ขึ้น) หรือ แนวนอน (ออก)

ข้อมูลเบื้องต้นเกี่ยวกับการปรับขนาดขนาดใหญ่ด้วย MongoDB

การปรับขนาดในแนวตั้ง

นี่คือสุภาษิต เหล็กใหญ่ วิธีการ:เครื่องขนาดใหญ่หนึ่งเครื่องที่มีทรัพยากรจำนวนมาก (แกน CPU, ความเร็วของ CPU ที่สูงขึ้น, RAM จำนวนมาก, ที่เก็บข้อมูล) ประโยชน์หลักของการปรับขนาดแนวตั้ง ได้แก่ ความซับซ้อนทางสถาปัตยกรรมที่ลดลงและโฮสต์ที่น้อยกว่าที่ต้องบำรุงรักษา สิ่งนี้มีประโยชน์หากคุณไม่มีใครดูแลจัดการให้คุณ

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

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

การปรับขนาดในแนวนอน

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

ตัวโหลดบาลานซ์จะกระจายส่วนต่างๆ ของข้อมูลทั่วทั้งดิสก์บนโหนด

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

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

  • ทางกายภาพ – ฮาร์ดแวร์สินค้าราคาถูกจำนวนมาก
  • เสมือน – เพิ่มแกนหรือโหนดของ CPU เพิ่มเติมโดยใช้ VM หรือระบบคลาวด์
  • เครือข่าย – เพิ่มตัวโหลดบาลานซ์ กระบวนการ mongoS® เพิ่มเติม และอื่นๆ

การใช้เทคโนโลยีโหลดบาลานซ์ที่ได้รับการปรับปรุง (ฮาร์ดแวร์และซอฟต์แวร์) เพื่อส่งทราฟฟิกไปยังที่ที่ต้องไปโดยใช้ตัวจัดสรรภาระงาน

คุณจะปรับใช้การปรับขนาดกับชุดแบบจำลองใน MongoDB ได้อย่างไร

MongoDB สามารถขยายในแนวนอนโดยใช้ชุดแบบจำลองขนาดใหญ่ชุดเดียวที่มี หลักหนึ่งชุด และ รอง two 2 คน ที่มี heartbeatcommunication สำหรับสถานะขึ้นหรือลง การจำลองแบบเกิดขึ้นในลำดับที่สองผ่านกระบวนการลอจิสติกส์

การปรับขนาดแนวนอน:ชุดแบบจำลองหรือการแบ่งส่วนข้อมูล

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

ชุดแบบจำลอง การแบ่งส่วน
ง่าย ต้องการความชำนาญ
การอ่านจำนวนมากในชุดข้อมูลแบบกว้าง (ไม่ต้องการกระจายการรวบรวม) เขียนและอัปเดตจำนวนมาก (ต้องการไปที่ส่วนแบ่งข้อมูลโดยตรงเพื่อดูผลลัพธ์)
ข้อมูลเยอะ อัตรากิจกรรมต่ำ ข้อมูลเยอะ กิจกรรมเยอะ
ต้องการ ปกติมากกว่านี้ ทรัพยากร เช่น ดิสก์ ต้องการทรัพยากรทั้งหมดมากกว่านี้ รวมถึงดิสก์, RAM, CPU, ขอบเขตการเขียน

เหตุใดจึงเลือก MongoDB ที่มีการจัดการจาก ObjectRocket

Rackspace ObjectRocket หมายถึง ความเชี่ยวชาญ . เราได้จัดการ MongoDB ในขนาดตั้งแต่เริ่มต้น เราให้การสนับสนุนสำหรับชุดแบบจำลองที่ใหญ่กว่า และเราเป็นหนึ่งในผู้ให้บริการรายแรกๆ ที่ให้การสนับสนุน MongoDBclusters ที่มีการแบ่งส่วนย่อยที่ใหญ่กว่า วิศวกรและ DBA ของเรามีประสบการณ์และเอาชนะอุปสรรคที่ซับซ้อนมาก ซึ่งเป็นอุปสรรคที่ผู้ให้บริการรายอื่นมักไม่เคยได้ยินมาก่อน

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

บริการที่เรามีให้ได้แก่:

  • โครงสร้างพื้นฐาน
  • ที่เก็บข้อมูล
  • IOPS
  • เครือข่าย
  • การสนับสนุนแบบลงมือปฏิบัติที่ดีที่สุด คำตอบที่ถูกต้อง 24×7.

ดูแผนและราคา

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

เรียนรู้เพิ่มเติมเกี่ยวกับ Rackspace DBA Services

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