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

เมื่อใดควรปรับขนาดอินสแตนซ์ MongoDB

เมื่อใดควรปรับขนาดอินสแตนซ์ MongoDB

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

ค้นหาเกณฑ์ที่เหมาะสมสำหรับแอปของคุณ

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

เส้นทางสู่การทดสอบโหลด MongoDB ที่ประสบความสำเร็จควรรวมถึงข้อควรพิจารณาต่อไปนี้:

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

ฉันควรตรวจสอบเมตริกใดเพื่อค้นหาปัญหาคอขวด

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

นี่คือตัวอย่างบางส่วน:

  • แอปพลิเคชันของคุณต้องการการแทรก X จำนวนต่อวินาทีเมื่อมีการเข้าชมเพิ่มขึ้น
  • ข้อมูลต้องส่งคืนผู้ใช้ภายในเวลาไม่ถึง 100 มิลลิวินาที
  • มีการจำกัดจำนวนการเชื่อมต่อพร้อมกัน
  • ทรัพยากรเซิร์ฟเวอร์มีขีดจำกัด เช่น CPU สูงหรือโหลดเฉลี่ย

เมื่อกำหนดเมตริกฝั่งแอปพลิเคชันได้แล้ว คุณก็ตัดสินใจได้ว่าต้องตรวจสอบอะไรในด้านฐานข้อมูล

ตัวอย่างเช่น หากข้อกำหนดของคุณคือต้องมีคำขอแทรกจำนวนหนึ่ง ให้เน้นที่เมตริกการเขียน เช่น:

  • เซิร์ฟเวอร์ I/O
  • การล็อกฐานข้อมูล
  • คู่ต่อสู้ ในแง่ของการเขียนเชิงรุก
  • ตั๋วเขียนที่ใช้ได้ หากคุณใช้งาน WiredTiger เป็นเครื่องมือจัดเก็บข้อมูล

เครื่องมือที่ใช้ในการวิเคราะห์เมตริก

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

  • mongostat ยูทิลิตีแสดงเมตริกฐานข้อมูลแบบเรียลไทม์เกี่ยวกับการล็อก อ่าน และเขียนคิว
  • db.currentOp() ยูทิลิตีกำหนดการดำเนินการที่ใช้งานอยู่ในปัจจุบัน
  • mongotop ช่วยให้คุณดูคอลเล็กชันยอดนิยมได้
  • ยูทิลิตี้เซิร์ฟเวอร์ เช่น ด้านบน , ซาร์ , ไอโอสแตท แสดงเมตริก เช่น การใช้งาน CPU หรือทรูพุตของดิสก์

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

กำหนดตำแหน่งที่จะรันการทดสอบโหลด

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

ต้องการความช่วยเหลือไหม

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

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