การเพิ่มจำนวนไดรฟ์ลงในการโจมตี 0 เพิ่มประสิทธิภาพหรือไม่


10

การเพิ่มจำนวนไดรฟ์ลงในการโจมตี 0 เพิ่มประสิทธิภาพหรือไม่ ฉันรู้ว่าสองไดรฟ์ในการโจมตีแบบสไทรพ์มักจะเร็วกว่าไดรฟ์เดียว แต่ฉันจะสังเกตเห็นความแตกต่างของประสิทธิภาพระหว่างการพูด, 2 ไดรฟ์ในการตรวจค้นสไทรพ์และ 8 มีข้อ จำกัด ทั่วไปสำหรับจำนวนไดรฟ์ในการจู่โจมก่อนที่คุณจะไม่ได้รับประโยชน์อีกหรือไม่?

มีการถามคำถามที่คล้ายกันที่นี่

การเพิ่มไดรฟ์เพิ่มเติมลงใน RAID 10 Array จะช่วยเพิ่มประสิทธิภาพหรือไม่?

แต่ฉันถามจริง ๆ ว่าการเพิ่มไดรฟ์หลายตัวในการโจมตี 0 มีการปรับปรุงมากกว่าแค่เพิ่มว่า 2 หรือ 4 ประสิทธิภาพเพิ่มขึ้นเรื่อย ๆ หรือไม่

คำตอบ:


11

ในทางทฤษฎีใช่แล้วไดรฟ์ที่มีการโจมตีเพิ่มขึ้น 0 จะนำไปสู่ประสิทธิภาพที่สูงขึ้นเนื่องจากมีการแชร์โหลดบนไดรฟ์มากกว่า อย่างไรก็ตามในทางปฏิบัติคุณจะถูก จำกัด โดยแบนด์วิดท์ของตัวควบคุมการโจมตีประสิทธิภาพของ CPU และหน่วยความจำและสิ่งที่คล้ายกัน การเพิ่มประสิทธิภาพจะไม่เป็นเชิงเส้นนั่นคือ 4 ดิสก์ไม่เร็วอย่างที่สองเท่ากับ 2 ดิสก์

ในระบบที่ทันสมัยพอสมควรพร้อมด้วยตัวควบคุมการจู่โจมหรือแม้กระทั่งการใช้ซอฟต์แวร์การโจมตีด้วย linux 'mdadm การใช้ 8 ไดรฟ์จะเร็วกว่าการใช้ 2 และคุณไม่ควรถูกระงับด้วยประสิทธิภาพที่เหลือของระบบ ซีพียูจู่โจมและ / หรือดิสก์คอนโทรลเลอร์หน่วยความจำทุกอย่างควรจะสามารถจัดการได้ คุณอาจเห็นการใช้ทรัพยากรระบบเพิ่มมากขึ้นเมื่อคุณเพิ่มไดรฟ์ โดยเฉพาะอย่างยิ่งถ้าคุณใช้คอนโทรลเลอร์ SATA แบบออนบอร์ดในการผสมผสานที่นุ่มนวล แต่ไม่มีอะไรที่เป็นอุปสรรคต่อการใช้งานโดยรวม หากใช้ linux คุณอาจต้องการใช้เคอร์เนลที่ได้รับการกำหนดค่าโดยไม่ต้อง "จองล่วงหน้า" เพื่อให้งานที่มุ่งเน้นเซิร์ฟเวอร์ได้รับความพึงพอใจจากการตอบสนองของผู้ใช้

https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO

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

สำหรับจำนวนไดรฟ์ที่จะใช้ทรัพยากรของระบบสูงสุดฉันจะไม่รู้ถ้าไม่มีรายละเอียดระบบอย่างละเอียด ฉันคิดว่าคุณจะถูก จำกัด มากขึ้นโดยอัตราความล้มเหลวถ้าคุณไปมากกว่า 16 ดิสก์ (ฉันไม่ชอบที่จะคิดเกี่ยวกับมัน)

โดยปกติคุณจะใช้ Raid0 สำหรับข้อมูลที่สามารถสูญหายได้ตลอดเวลาโดยไม่มีปัญหา มันจะทำงานได้อย่างยอดเยี่ยมสำหรับสิ่งต่าง ๆ เช่น build server หรือ scratch space สำหรับการคำนวณทางวิทยาศาสตร์ขนาดใหญ่ ในความเป็นจริงสถานการณ์เหล่านั้นเป็นสิ่งที่ฉันใช้ Raid0 บ่อยครั้งและเป็นวิธีที่ดีในการบีบชีวิตให้มากขึ้นจากความเก่าความจุที่ลดลงและดิสก์ราคาไม่แพงที่จะต้องเก็บฝุ่น คุณสามารถผสมขนาดอย่างน้อยด้วย mdadm

หากใช้ mdadm มันอาจคุ้มค่าที่จะพิจารณาใช้เพียงแค่ raid10 ในการกำหนดค่าบางอย่างที่สามารถเข้าใกล้ประสิทธิภาพของ raid0 นั่นคือประสิทธิภาพการอ่านของ raid0 และปรับปรุงประสิทธิภาพการเขียนเหนือระดับการโจมตีอื่น ๆ (ยกเว้น raid0) คุณจะได้รับความซ้ำซ้อนที่ดีกว่าระดับการจู่โจมอื่น ๆ โดยมีโทษเพียงเล็กน้อยเมื่อเทียบกับการโจมตี 0 นั่นจะเป็นสิ่งที่ดีที่สุดของทั้งสองโลกคุณไม่พบสิ่งนั้นบ่อยนัก

https://en.wikipedia.org/wiki/RAID#Non-standard_levels

Linux MD RAID 10 ให้ไดรเวอร์ RAID ทั่วไปที่อยู่ในโครงร่าง "ใกล้" เป็นค่าเริ่มต้นสำหรับ RAID 1 มาตรฐานที่มีสองไดรฟ์และ RAID 1 + 0 มาตรฐานที่มีสี่ไดรฟ์ แม้ว่ามันสามารถรวมจำนวนไดรฟ์ใด ๆ รวมถึงจำนวนคี่ ด้วยเลย์เอาต์ "ไกล" MD RAID 10 สามารถเรียกใช้ทั้งแบบสไทรพ์และมิเรอร์ได้แม้จะมีเพียงไดรฟ์สองตัวในรูปแบบ f2 เท่านั้น สิ่งนี้จะทำการมิเรอร์ด้วยแถบอ่านลายทำให้ประสิทธิภาพการอ่านของ RAID 0 ปกติ RAID 1 ซึ่งจัดทำโดยซอฟต์แวร์ Linux RAID ไม่ได้อ่านแถบ แต่สามารถอ่านแบบขนานได้

ตามที่แนะนำในความคิดเห็นขนาดการผสมกับ mdadm จะไม่เพิ่มความเร็วหากคุณใช้พื้นที่ดิสก์ทั้งหมดแทนที่จะให้ดิสก์ขนาดเล็กที่สุดกำหนดขนาดของอาร์เรย์

การหาเวลาจะไม่ปรับปรุงในการจู่โจม 0 และอาจช้าลงเล็กน้อย สำหรับการจู่โจมโดยอาศัย SSD 0 เวลาในการค้นหาจะน้อยมาก (ระหว่าง 0.08 ถึง 0.16 ms https://en.wikipedia.org/wiki/Hard_disk_drive_performance_characteristics#cite_note-HP_SSD-6 ) มันไม่สำคัญเท่าไหร่


หากคุณต้องการผสมขนาดคุณไม่สามารถใช้ RAID0 อย่างน้อยก็เพื่อใช้พื้นที่ทั้งหมดที่มีอยู่ คุณต้องใช้ JBOD ซึ่งไม่เพิ่มประสิทธิภาพ
Tero Kilkanen

คุณสามารถผสมขนาดโดยใช้ mdadm มีความยืดหยุ่นมาก mdadm ยังช่วยให้คุณกำหนดค่า 3 raid10 ดิสก์ ฉันไม่คาดหวังว่าคุณจะสามารถผสมขนาดในตัวควบคุมการโจมตีได้ซึ่งมีความยืดหยุ่นน้อยกว่า แต่เร็วกว่า
aseq

1
ฉันตรวจสอบเรื่องนี้และถ้าคุณต้องการ RAID0 อุปกรณ์ที่เล็กที่สุดของอาเรย์จะกำหนดขนาดของอาเรย์ที่สมบูรณ์ นั่นคือถ้าคุณมีไดรฟ์ 100GB, 200GB และ 300 GB คุณจะได้รับอาร์เรย์ RAID0 300 GB และพื้นที่ว่าง 100GB และ 200GB เพื่อใช้สำหรับวัตถุประสงค์อื่น ในโหมดเชิงเส้นคุณจะได้รับความจุที่สมบูรณ์ของอุปกรณ์ทั้งหมด แต่ไม่ได้ทำงานแบบขนาน
Tero Kilkanen

1
นั่นฟังดูใช่เลย
aseq

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

1

ขึ้นอยู่กับปริมาณงาน แต่ IMHO ใช่การเพิ่มดิสก์เพิ่มเติม 2 ตัวในอาร์เรย์ 2 ดิสก์ที่มีอยู่ควรให้ประสิทธิภาพโดยรวมดีขึ้น

คุณต้องรู้ว่าคอขวดอยู่ตรงไหน:

  • CPU - ปริมาณข้อมูลที่ CPU สามารถรองรับได้
  • บัส / คอนโทรลเลอร์ - สามารถรับส่งข้อมูลได้จำนวนเท่าใด
  • SSD / HDD - สามารถให้ / รับข้อมูลได้จำนวนเท่าใด

สมมติว่ามีซอฟต์แวร์ Linux RAID จากนั้นเพิ่มดิสก์เพิ่มเติมสองรายการที่อาจส่งผลให้:

  • ~ เวลาในการเข้าถึงสั้นลงถึงสองเท่าของบล็อกข้อมูลขนาดใหญ่ซึ่งส่งผลให้;
  • ~ สองเท่าของ IOPS
  • ~ ปริมาณงานสองเท่าโดยสมมติว่าคอนโทรลเลอร์มีบัสเพียงพอและ CPU สามารถรองรับปริมาณข้อมูลได้

* ~ สิ่งนี้ไม่เคยเพิ่มขึ้นสองเท่าในปัจจัยต่อไปนี้น้อยกว่า 10-20% เสมอ ดูเหมือนเป็นเส้นตรงมากหรือน้อย โปรดอย่าปฏิบัติต่อมันเป็นคำตอบที่เชื่อถือได้ฉันไม่ได้ทำการศึกษาเกี่ยวกับเรื่องนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.