เหตุใดการอ่าน 4k ในเกณฑ์มาตรฐาน hdd / ssd จึงช้ากว่าการเขียน


12

มีเครื่องมือมาตรฐานหลายอย่างเพื่อทดสอบความเร็วของไดรฟ์พีซี

นี่คือตัวอย่างมาตรฐานของ SATA SSD:

  • การอ่านแบบลำดับ: 718.498 MB / s
  • การเขียนแบบลำดับ: 777.414 MB / s
  • สุ่มอ่าน 512KB: 160.541 MB / s
  • สุ่มเขียน 512KB: 838.930 MB / s
  • สุ่มอ่าน 4KB (QD = 1): 26.985 MB / s [6588.1 IOPS]
  • 4KB แบบสุ่มเขียน (QD = 1): 135.603 MB / s [33106.2 IOPS]
  • สุ่มอ่าน 4KB (QD = 32): 177.003 MB / s [43213.6 IOPS]
  • การเขียนแบบสุ่ม 4KB (QD = 32): 178.397 MB / s [43554.0 IOPS]

m.2 SSD:

  • การอ่านแบบลำดับ (Q = 32, T = 1): 829.119 MB / s
  • การเขียนแบบลำดับ (Q = 32, T = 1): 677.645 MB / s
  • สุ่มอ่าน 4KiB (Q = 32, T = 1): 744.328 MB / s [181720.7 IOPS]
  • การเขียนแบบสุ่ม 4KiB (Q = 32, T = 1): 144.876 MB / s [35370.1 IOPS]
  • การอ่านตามลำดับ (T = 1): 785.600 MB / s
  • การเขียนแบบลำดับ (T = 1): 789.973 MB / s
  • สุ่มอ่าน 4KiB (Q = 1, T = 1): 56.585 MB / s [13814.7 IOPS]
  • การเขียนแบบสุ่ม 4KiB (Q = 1, T = 1): 170.449 MB / s [41613.5 IOPS]

HDD:

  • การอ่านแบบลำดับ: 114.988 MB / s
  • การเขียนแบบลำดับ: 111.043 MB / s
  • สุ่มอ่าน 512KB: 39.260 MB / s
  • สุ่มเขียน 512KB: 57.409 MB / s
  • สุ่มอ่าน 4KB (QD = 1): 0.546 MB / s [133.4 IOPS]
  • 4KB แบบสุ่มเขียน (QD = 1): 0.757 MB / s [184.9 IOPS]
  • สุ่มอ่าน 4KB (QD = 32): 1.582 MB / s [386.3 IOPS]
  • 4KB แบบสุ่มเขียน (QD = 32): 0.700 MB / s [171.0 IOPS]

ในทุกกรณี "Random Read 4KB Q1" ช้ากว่าการเขียนและในกรณีส่วนใหญ่ตรงกันข้ามกับ "QD32"

ในบางฟอรัมคนบอกว่ามันมีข้อ จำกัด เกี่ยวกับโครงสร้างชิป SSD แต่ตามปกติแล้วฮาร์ดไดรฟ์จะแสดงพฤติกรรมแบบเดียวกันดูเหมือนจะเป็นเหตุผลอื่นหรือไม่!

คำตอบ:


9

TL; DR:เป็นเพราะ SSD กำลังโกหกคุณและบอกว่าการเขียนเสร็จก่อนที่จะเป็น มันไม่สามารถหนีไปได้ด้วยสิ่งเดียวกันสำหรับการอ่าน

เวอร์ชันที่ยาวกว่าของคำตอบคือการเขียนแคช

เริ่มต้นด้วยเคส QD1 SSD จะรายงานการเขียนเสร็จสิ้นไปยังระบบปฏิบัติการเมื่อได้รับข้อมูลและบันทึกไว้ในแคชในไดรฟ์ แต่ก่อนที่จะเขียนลงใน NAND จริง สิ่งนี้สร้างความแตกต่างใหญ่เพราะการเขียนข้อมูลไปยัง NAND ค่อนข้างช้า สำหรับการอ่านมันจะต้องอ่านข้อมูลจาก NAND ก่อนที่จะสามารถส่งกลับมาได้ (เว้นแต่ว่ามันจะอ่านก่อนหน้านี้แล้วและยังมีอยู่ในแคช

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

คุณเห็นสิ่งเดียวกันสำหรับฮาร์ดไดรฟ์เพราะพวกเขากำลังเขียนแคช พวกเขาไม่เกือบจะก้าวร้าวกับมัน ทำไม SSD ถึงก้าวร้าว? เพื่อตอบว่าเราต้องย้ายไปพิจารณาคดี QD32 ซึ่งทั้งซับซ้อนและน่าสนใจยิ่งขึ้น

ไม่เป็นความจริงที่คุณพูดว่าการอ่านแบบสุ่มมักจะเร็วกว่าการเขียนแบบสุ่มที่ QD32 มันขึ้นอยู่กับ SSD ที่คุณดูเป็นพิเศษ

หากคุณดูที่ 4k QD1 สุ่มอ่านบน SSD SSD หลายตัวพวกเขาดูเหมือนจะทำงานในช่วง 20-30 MB / s ทำไมถึงเป็นอย่างนั้น? เป็นเพราะการอ่านแบบสุ่ม 4k QD1 นั้นส่วนใหญ่เกี่ยวกับเวลาในการตอบสนองและไม่ใช่ปริมาณงาน ความหน่วงมาจากสามส่วน:

  1. เวลาแฝงอินเทอร์เฟซของ SATA / AHCI ซึ่งเกี่ยวข้องกับการบอกไดรฟ์ว่าจะทำอย่างไรและส่งข้อมูล
  2. ตัวควบคุมต้องคิดออกว่าจะทำอย่างไรกับข้อมูลและคำแนะนำที่ได้รับ
  3. เวลาที่ใช้ในการอ่านหรือเขียนข้อมูลไปยัง NAND die

ทั้ง 1. หรือ 3. เปลี่ยนแปลงไปมากในระยะเวลานานและนั่นเป็นสาเหตุที่การอ่านแบบสุ่ม 1k QD1 ไม่ได้เปลี่ยนแปลงมากนัก

การย้าย SSD ล่าสุดจาก SATA / AHCI ไปเป็น PCIe / NVMe ได้ลดเวลาในการตอบสนอง 1 ซึ่งเป็นสาเหตุที่ m.2 และ PCIe SSD บางตัวเพิ่งแสดงการปรับปรุงที่ยอดเยี่ยมที่นี่

สิ่งหนึ่งที่คอนโทรลเลอร์ SSD สามารถทำได้เพื่อช่วยในเรื่องเวลาในการตอบสนองคืออ่านหรือเขียนข้อมูลไปยัง NAND หลายตัวพร้อมกันและวิธีนี้จะปกปิดเวลาแฝงส่วนใหญ่ไว้ที่ 3 หากคุณทำการอ่านแบบสุ่ม QD32 4k ด้วย NCQ SSD สามารถอ่านได้ คำขอไม่เป็นระเบียบและตรวจสอบให้แน่ใจว่าได้อ่านข้อมูลจาก NAND จำนวนมากที่เสียชีวิตแบบขนานมากที่สุด

สำหรับการสุ่ม QD32 4k การเขียน SSD จะทำสิ่งที่เรียกว่าการรวมการเขียน เมื่อคำร้องขอการเขียนขนาดเล็กจำนวนมากเข้ามาในคอนโทรลเลอร์ SSD จะแคชพวกมันในเครื่องและเมื่อบัฟเฟอร์ที่มีขนาดใหญ่เพียงพอของการเขียนได้สร้างคอนโทรลเลอร์ขึ้นให้แยกมันออกเป็นชิ้นขนาดพอดีและเขียนชิ้นงานไปยัง NAND หลายตัวพร้อมกันอีกครั้ง เวลาแฝง NAND ข้อดีอีกประการของการรวมการเขียนคือ SSD ส่วนใหญ่ในปัจจุบันมีขนาดหน้า (จำนวนน้อยที่สุดที่สามารถอ่านหรือเขียน) ที่ใหญ่กว่า 4k และการรวมการเขียนจนกว่าคุณจะถึงขนาดหน้าจะช่วยหลีกเลี่ยงการขยายการเขียนจำนวนมาก เพื่อที่จะทำสิ่งเหล่านี้ที่ SSD นั้นก้าวร้าวในการเขียนแคช

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