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

การปรับขนาดด้วย MongoDB:การตั้งค่าโครงสร้างพื้นฐานการแบ่งส่วนข้อมูล

การปรับขนาดด้วย MongoDB:การตั้งค่าโครงสร้างพื้นฐานการแบ่งส่วนข้อมูล

ในบล็อกโพสต์ล่าสุด ฉันได้พูดถึงเมื่อคุณต้องการปรับขนาด MongoDB ในโพสต์นี้ เน้นที่วิธีการปรับขนาด MongoDB

MongoDB เวอร์ชัน 3.0 แนะนำ WiredTiger เป็นเอ็นจิ้นการจัดเก็บข้อมูลเริ่มต้น ตั้งแต่นั้นมา MongoDB สามารถให้สองแนวทางในเรื่องความสามารถในการปรับขนาดได้ Mongo สามารถขยายได้ทั้งแนวตั้งและแนวนอน ทั้งสองวิธีรับประกันการมองอย่างใกล้ชิด

การปรับขนาดด้วย MongoDB:การตั้งค่าโครงสร้างพื้นฐานการแบ่งส่วนข้อมูล

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

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

หมายเหตุเกี่ยวกับ WiredTiger RAM
หาก RAM ที่จัดสรรน้อยกว่า 1GB โดยทั่วไปแล้ว WiredTiger จะมีค่าเริ่มต้นเป็น 256MB หรือ 50 เปอร์เซ็นต์ของ RAM ที่พร้อมใช้งาน ด้วยเหตุนี้จึงต้องปรับขนาดแคช WiredTiger หากมีการจัดสรร RAM มากขึ้น

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

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

การตั้งค่าโครงสร้างพื้นฐานชาร์ดดิ้ง

ส่วนประกอบทางกายภาพที่เกี่ยวข้องกับการตั้งค่าการกำหนดค่าการแบ่งส่วนจำเป็นต้องมีรายการต่อไปนี้

  • มองโกส ทำหน้าที่เป็นเราเตอร์แบบสอบถาม
  • เซิร์ฟเวอร์กำหนดค่า เก็บข้อมูลเมตาชาร์ดไว้
  • โหนดข้อมูล เก็บข้อมูลจริง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนประกอบทางกายภาพ ไปที่ภาพรวม MongoDB ของเรา

การกำหนดชาร์ดคีย์

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

เพื่อระบุฟิลด์ที่เกี่ยวข้องกับการใช้ชาร์ดคีย์:

  1. ระบุคอลเล็กชันที่จะชาร์ด คอลเล็กชันที่มีขนาดใหญ่กว่า 200MB และสามารถกระจายข้อมูลได้เท่าๆ กันแสดงถึงตัวเลือกที่ดีในการชาร์ด
  2. สร้างหรือประดิษฐ์ชาร์ดคีย์ที่เหมาะสม เมื่อสร้างชาร์ดคีย์ ให้พิจารณาคำแนะนำและคำถามต่อไปนี้:
  • รับข้อมูลเชิงลึกเกี่ยวกับวิธีการที่แอปพลิเคชันโต้ตอบกับฐานข้อมูล
  • พิจารณาว่าแอปพลิเคชันมีการอ่านหรือเขียนมาก หรือมีความสมดุลเท่ากัน
  • กิจกรรมที่สำคัญที่สุดต่อฐานข้อมูลคืออะไร? ตัวอย่างเช่น แอปพลิเคชันอาจเขียนข้อมูลจำนวนมากไปยังฐานข้อมูล แต่กิจกรรมที่สำคัญที่สุดอาจเกี่ยวข้องกับการสืบค้นที่ส่งคืนข้อมูลในเวลาน้อยกว่า 100 มิลลิวินาที
  • รูปแบบการเติบโตของข้อมูลรายสัปดาห์และรายเดือนที่คาดหวังคืออะไร
  • ต้องจัดการกับความเจ็บปวดหรือปัญหาใด ๆ หรือไม่ เช่น ข้อความค้นหาที่ช้า
  • แอปพลิเคชันมีงานยุ่งในบางช่วงเวลาของวัน สัปดาห์ เดือน หรือปีหรือไม่ ยุ่งตลอดเวลาหรือเปล่า

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