กฎง่ายๆที่ฉันใช้สำหรับดิสก์ IO คือ:
75 IOP ต่อแกนหมุนสำหรับ SATA
150 IOP ต่อแกนหมุนสำหรับ FC / SAS
1500 IOP ต่อแกนหมุนสำหรับ SSD
เช่นเดียวกับ IOPs ต่ออาร์เรย์ยังพิจารณา IOPs ต่อเทราไบต์ ไม่ใช่เรื่องแปลกที่จะจบลงด้วยอัตราส่วน IOP ที่แย่มากต่อ TB หากทำ SATA + RAID6 สิ่งนี้อาจฟังดูไม่มากนัก แต่คุณมักจะพบกับบางคนที่มองหา 'พื้นที่ว่าง' บนอาเรย์และต้องการใช้งาน เป็นเรื่องปกติที่ผู้คนจะซื้อกิ๊กและไม่สนใจไอโอปส์เมื่อความจริงตรงกันข้ามในระบบองค์กรส่วนใหญ่
จากนั้นเพิ่มค่าใช้จ่ายในการเขียนบทลงโทษสำหรับ RAID:
- 2 สำหรับ RAID1, RAID1 + 0
- 4 สำหรับ RAID5 (หรือ 4)
- 6 สำหรับ RAID6
การลงโทษการเขียนสามารถบรรเทาบางส่วนให้กับแคชการเขียนขนาดใหญ่ที่ดีและในสถานการณ์ที่เหมาะสม หากคุณมีการเขียนตามลำดับ IO (เช่นบันทึกฐานข้อมูล) คุณสามารถลดบทลงโทษการเขียนเหล่านั้นบน RAID 5 และ 6 ได้อย่างมาก หากคุณสามารถเขียนแถบเต็ม (เช่นหนึ่งบล็อกต่อแกนหมุน) คุณไม่จำเป็นต้องอ่านเพื่อคำนวณพาริตี
สมมติว่าเป็นชุด 8 +2 RAID 6 ในการทำงานปกติสำหรับ IO เขียนเดียวคุณต้อง:
- อ่านบล็อก 'อัพเดต'
- อ่านบล็อกพาริตีแรก
- อ่านบล็อกพาริตีที่สอง
- คำนวณความเท่าเทียมกันใหม่
- เขียนทั้งหมด 3 (6 IOs)
ด้วยการเขียนเต็มแถบแคช - เช่น 'ชิ้น' ต่อเนื่อง 8 ขนาดของ RAID RAID คุณสามารถคำนวณพาริตีบนล็อตทั้งหมดโดยไม่จำเป็นต้องอ่าน ดังนั้นคุณต้องการเพียง 10 การเขียน - หนึ่งต่อข้อมูลและสองความเท่าเทียมกัน
สิ่งนี้ทำให้คุณเขียนบทลงโทษ 1.2
คุณต้องจำไว้ว่าการเขียน IO นั้นง่ายต่อการแคช - คุณไม่จำเป็นต้องเอามันลงในดิสก์ทันที มันทำงานภายใต้ข้อ จำกัด ของซอฟต์ไทม์ - ตราบใดที่การเขียนที่เข้ามาโดยเฉลี่ยของคุณไม่เกินความเร็วแกนหมุนมันจะสามารถทำงานที่ 'ความเร็วแคช'
อ่าน IO ในทางกลับกันทำให้เกิดข้อ จำกัด ในช่วงเวลาที่ยากลำบาก - คุณไม่สามารถอ่านจนจบจนกว่าจะมีการดึงข้อมูล อัลกอริธึมการแคชการอ่านและการโหลดแคชมีความสำคัญในจุดนั้น - รูปแบบการอ่านที่คาดการณ์ได้ (เช่นเรียงลำดับตามที่คุณได้รับจากการสำรองข้อมูล) สามารถคาดการณ์และดึงข้อมูลล่วงหน้าได้ แต่รูปแบบการอ่านแบบสุ่มไม่สามารถทำได้
สำหรับฐานข้อมูลโดยทั่วไปฉันแนะนำให้คุณสมมติว่า:
'ฐานข้อมูล' ของคุณ IO ส่วนใหญ่อ่านแบบสุ่ม (เช่นไม่ดีสำหรับการเข้าถึงแบบสุ่ม) หากคุณสามารถจ่ายค่าใช้จ่ายได้ RAID1 + 0 นั้นดีเพราะดิสก์ที่มิเรอร์จะให้แหล่งที่มาของการอ่านสองแหล่ง
'log' IO ส่วนใหญ่ของคุณเป็นการเขียนตามลำดับ (เช่นดีสำหรับการแคชและตรงกันข้ามกับสิ่งที่ DBA จำนวนมากจะแนะนำคุณอาจต้องการ RAID50 มากกว่า RAID10)
อัตราส่วนของทั้งสองนั้นยากที่จะพูดยาก ขึ้นอยู่กับสิ่งที่ฐานข้อมูลทำ
เนื่องจากการสุ่มอ่าน IO เป็นกรณีที่เลวร้ายที่สุดสำหรับการแคชจึงเป็นสิ่งที่ SSD เข้ามาเป็นของตัวเอง - ผู้ผลิตจำนวนมากไม่ต้องกังวลกับการแคช SSD เพราะความเร็วใกล้เคียงกัน ดังนั้นโดยเฉพาะอย่างยิ่งสำหรับสิ่งต่าง ๆ เช่นฐานข้อมูลอุณหภูมิและดัชนี SSD ให้ผลตอบแทนการลงทุนที่ดี