ในบล็อกโพสต์ก่อนหน้านี้ เราได้ให้ข้อมูลเบื้องต้นเกี่ยวกับการปรับขนาดขนาดใหญ่ด้วย MongoDB การปรับขนาดมีแนวโน้มที่จะตอบสนองในลักษณะที่นำไปสู่ปัญหาต่างๆ เช่น ประสิทธิภาพของแอปพลิเคชันลดลง หรือที่แย่กว่านั้นคือเวลาหยุดทำงานของแอปพลิเคชันทั้งหมด ปัญหาเหล่านี้นำไปสู่ประสบการณ์เชิงลบของลูกค้าที่ส่งผลกระทบต่อธุรกิจของคุณในที่สุด แล้วคุณจะรู้ได้อย่างไรว่าเมื่อถึงเวลาที่เหมาะสมในการปรับขนาดฐานข้อมูล Mongo เพื่อไม่ให้ส่งผลกระทบต่อผลกำไร
ค้นหาเกณฑ์ที่เหมาะสมสำหรับแอปของคุณ
เพื่อให้แน่ใจว่าแอปพลิเคชันของคุณรับมือกับพายุแห่งการเติบโตของการใช้แอปพลิเคชันและปริมาณการใช้งานที่เพิ่มขึ้น คุณจำเป็นต้องการทดสอบโหลด ระบบเพื่อกำหนดขีดจำกัดที่แอปพลิเคชันของคุณสามารถจัดการได้ก่อนที่คุณจะใช้การเปลี่ยนแปลง เช่น การปรับขนาดกับระบบการผลิตของคุณ กระบวนการนี้มักไม่ถูกละเลยและส่งผลให้มีการฝึกซ้อมดับเพลิงเมื่อคุณประสบปัญหาการจราจรที่เพิ่มขึ้น
เส้นทางสู่การทดสอบโหลด MongoDB ที่ประสบความสำเร็จควรรวมถึงข้อควรพิจารณาต่อไปนี้:
- เมตริกใดที่ต้องได้รับการตรวจสอบเพื่อให้คุณพบปัญหาคอขวด
- เกณฑ์ใดควรใช้ในแง่ของเวลาในการปรับขนาด
- ควรใช้เครื่องมือใดในการวิเคราะห์เมตริก
- คุณควรรันการทดสอบโหลดที่ไหน
ฉันควรตรวจสอบเมตริกใดเพื่อค้นหาปัญหาคอขวด
ขั้นแรก คุณจะต้องกำหนดเกณฑ์ที่จะใช้เพื่อค้นหาปัจจัยที่จำกัดสำหรับแอปพลิเคชันของคุณโดยเฉพาะ ทุกแอปพลิเคชันมีความแตกต่างกัน การทราบข้อกำหนดเหล่านี้จะช่วยให้คุณกำหนดเมตริกที่เหมาะสมเพื่อตรวจสอบจากฝั่งฐานข้อมูลได้
นี่คือตัวอย่างบางส่วน:
- แอปพลิเคชันของคุณต้องการการแทรก X จำนวนต่อวินาทีเมื่อมีการเข้าชมเพิ่มขึ้น
- ข้อมูลต้องส่งคืนผู้ใช้ภายในเวลาไม่ถึง 100 มิลลิวินาที
- มีการจำกัดจำนวนการเชื่อมต่อพร้อมกัน
- ทรัพยากรเซิร์ฟเวอร์มีขีดจำกัด เช่น CPU สูงหรือโหลดเฉลี่ย
เมื่อกำหนดเมตริกฝั่งแอปพลิเคชันได้แล้ว คุณก็ตัดสินใจได้ว่าต้องตรวจสอบอะไรในด้านฐานข้อมูล
ตัวอย่างเช่น หากข้อกำหนดของคุณคือต้องมีคำขอแทรกจำนวนหนึ่ง ให้เน้นที่เมตริกการเขียน เช่น:
- เซิร์ฟเวอร์ I/O
- การล็อกฐานข้อมูล
- คู่ต่อสู้ ในแง่ของการเขียนเชิงรุก
- ตั๋วเขียนที่ใช้ได้ หากคุณใช้งาน WiredTiger เป็นเครื่องมือจัดเก็บข้อมูล
เครื่องมือที่ใช้ในการวิเคราะห์เมตริก
เมื่อคุณกำหนดเมตริกที่จะมอนิเตอร์แล้ว คุณต้องรวบรวมข้อมูลจากฝั่งฐานข้อมูล นี่คือยูทิลิตี้บางส่วนที่คุณสามารถใช้วิเคราะห์ปัจจัยโหลดได้:
- mongostat ยูทิลิตีแสดงเมตริกฐานข้อมูลแบบเรียลไทม์เกี่ยวกับการล็อก อ่าน และเขียนคิว
- db.currentOp() ยูทิลิตีกำหนดการดำเนินการที่ใช้งานอยู่ในปัจจุบัน
- mongotop ช่วยให้คุณดูคอลเล็กชันยอดนิยมได้
- ยูทิลิตี้เซิร์ฟเวอร์ เช่น ด้านบน , ซาร์ , ไอโอสแตท แสดงเมตริก เช่น การใช้งาน CPU หรือทรูพุตของดิสก์
นอกจากการวิเคราะห์ตามเวลาจริงแล้ว คุณยังสามารถขุดบันทึก MongoDB เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับกิจกรรมฐานข้อมูลรวมถึงเงื่อนไขข้อผิดพลาดต่างๆ ตามค่าเริ่มต้น MongoDB จะบันทึกการสืบค้นที่ใช้เวลานานกว่า 100 มิลลิวินาทีในการดำเนินการ ดังนั้นจึงเป็นเครื่องมือที่ดีในการระบุการสืบค้นที่มีประสิทธิภาพต่ำ
กำหนดตำแหน่งที่จะรันการทดสอบโหลด
เมื่อคุณกำหนดได้ว่าจะใช้อะไรในการรวบรวมข้อมูล คุณก็พร้อมที่จะโหลดการทดสอบ สามัญสำนึกกำหนดว่าคุณไม่ควรโหลดการทดสอบในสภาพแวดล้อมที่ใช้งานจริง บางครั้งสิ่งนี้กลายเป็นตัวหยุดการแสดงเพราะอาจเป็นเรื่องยากที่จะหมุนสภาพแวดล้อมให้เร็วพอ หากคุณยังไม่ได้อยู่บนแพลตฟอร์ม ObjectRocket คุณสามารถหมุนคลัสเตอร์ทดสอบ MongoDB ได้อย่างรวดเร็ว
ต้องการความช่วยเหลือไหม
การรู้ว่าเมื่อใดควรปรับขนาดสภาพแวดล้อม MongoDB ของคุณอาจมีความซับซ้อน ลูกค้า ObjectRocket เพลิดเพลินไปกับการสนับสนุนการปรับขนาดและการแบ่งส่วนข้อมูลที่ดีที่สุด DBA ของเราสามารถช่วยปรับขนาดคลัสเตอร์ของคุณได้ในทุกแง่มุม และความช่วยเหลือของเราก็รวมอยู่ในนั้นด้วยเสมอ ติดต่อเราวันนี้เพื่อเริ่มต้น
ตอนนี้คุณสามารถเริ่มกำหนดได้ว่าเมื่อใดควรปรับขนาดอินสแตนซ์ MongoDB ของคุณในบล็อกถัดไป เราจะพูดถึงวิธีการปรับขนาดอินสแตนซ์ MongoDB