สิ่งนี้ขึ้นอยู่กับระบบเป็นอย่างมาก แต่มีโอกาสใกล้ที่แน่นอนว่าเราจะขยายขอบเขตหน้าผาตามอำเภอใจและเข้าสู่ปัญหาจริง ฉันอยากรู้ว่ากฎของหัวแม่มือมีอยู่เท่าไหร่สำหรับอัตราส่วน RAM ต่อพื้นที่ว่างในดิสก์ที่ดี เรากำลังวางแผนระบบรอบต่อไปของเราและต้องเลือกตัวเลือกบางอย่างเกี่ยวกับ RAM, SSD และจำนวนโหนดใหม่ที่จะได้รับ
แต่ตอนนี้สำหรับรายละเอียดประสิทธิภาพ!
ในช่วงเวิร์กโฟลว์ปกติของการดำเนินการโครงการเดียว MongoDB จะได้รับผลกระทบสูงมากจากการเขียน (70-80%) เมื่อขั้นตอนที่สองของไปป์ไลน์การประมวลผลได้รับผลกระทบการอ่านจะสูงมากเนื่องจากต้องทำซ้ำระเบียนที่ระบุในการประมวลผลครึ่งแรก นี่คือเวิร์กโฟลว์ที่สร้าง "ชุดการทำงานของคุณไว้ใน RAM" และเรากำลังออกแบบตามสมมติฐานนั้น
ชุดข้อมูลทั้งหมดถูกตีอย่างต่อเนื่องโดยมีการสุ่มแบบสอบถามจากแหล่งที่มาของผู้ใช้ปลายทาง แม้ว่าความถี่จะไม่สม่ำเสมอ แต่ขนาดมักจะค่อนข้างเล็ก (10 กลุ่มของเอกสาร) เนื่องจากเป็นแบบผู้ใช้การตอบกลับจึงต้องอยู่ภายใต้เกณฑ์ "เบื่อตอนนี้" เป็นเวลา 3 วินาที รูปแบบการเข้าถึงนี้มีโอกาสน้อยที่จะอยู่ในแคชดังนั้นจะมีแนวโน้มที่จะเกิดการพบดิสก์มาก
เวิร์กโฟลว์การประมวลผลรองคือการอ่านค่าสูงของการประมวลผลก่อนหน้าซึ่งอาจเป็นวันสัปดาห์หรือเดือนเก่าและมีการเรียกใช้ไม่บ่อยนัก แต่ยังคงต้องมีกำลังใจ สามารถเข้าถึงเอกสารได้สูงสุด 100% ในการดำเนินการประมวลผลก่อนหน้า ฉันสงสัยว่าจะไม่มีแคชอุ่นเครื่องในจำนวนนี้
ขนาดเอกสารเสร็จแตกต่างกันไป แต่ขนาดเฉลี่ยอยู่ที่ประมาณ 8K
ส่วนที่มีการอ่านสูงของการประมวลผลโครงการปกติแนะนำอย่างยิ่งให้ใช้ Replicas เพื่อช่วยกระจายปริมาณการอ่าน ฉันได้อ่านที่อื่นว่า 1:10 RAM-GB ถึง HD-GB เป็นกฎที่ดีสำหรับดิสก์ช้าเนื่องจากเรากำลังพิจารณาอย่างจริงจังว่าจะใช้ SSD ที่เร็วกว่ามากฉันต้องการทราบว่ามีกฎที่คล้ายคลึงกันหรือไม่ ของหัวแม่มือสำหรับดิสก์ที่รวดเร็ว
ฉันรู้ว่าเรากำลังใช้ Mongo ในวิธีที่แคชทุกอย่างไม่ได้บินไปด้วยเหตุนี้ฉันจึงมองหาวิธีในการสร้างระบบที่สามารถอยู่รอดได้ในการใช้งานดังกล่าว ทั้งชุดข้อมูลที่มีแนวโน้มที่จะมากที่สุดของวัณโรคภายในครึ่งปีและการเจริญเติบโตให้