ความเร็วในการเขียนการ์ด SD นั้นช้ากว่าความเร็วในการอ่านถึง 14 เท่า


11

ฉันกำลังเขียนการ์ด SD ในเย็นวันนี้จากเครื่องอ่านการ์ดภายใน Mac Book Air และประสิทธิภาพการทำงานที่รายงานคือ 1.4 MB / วินาที ฉันอ่านภายหลังทดสอบบน Raspberry Pi และได้ 20 MB / วินาที มันเป็นการ์ดคลาส 6 และตัวเลขเหล่านี้ไม่ได้ฟังดูสมจริง!

ฉันใช้ddสำหรับการทดสอบของฉัน ผลการทดสอบเหมือนกันทั้งอ่านและเขียนบนคอมพิวเตอร์ทั้งสอง:

Raspberry Pi: อ่าน 20 MB / วินาที เขียน 11 MB / วินาที ...
อากาศ: อ่าน 3 MB / วินาที เขียน 1.4 MB / วินาที

ใช้คำสั่งเหล่านี้:

ทดสอบการเขียน:

sudo dd if=/dev/zero of=/dev/mmcblk0p3 bs=1M count=400

อ่านการทดสอบ:

sudo dd of=/dev/null if=/dev/mmcblk0p3 bs=1M count=400

สิ่งนี้บ่งชี้ว่าความผิดปกติที่รับรู้นั้นเป็นจริงแล้วประสิทธิภาพของเครื่องอ่านการ์ด SD ใน Mac Book Air! มันทำให้การสร้างภาพช้ามาก


Sandisk อ้างว่าการ์ดคลาส 6 มีความเร็วในการอ่าน 20MBps แม้ว่า KINGSTON จะอ้างว่าการ์ด 15MBPS นั้นเป็นความเร็วในการอ่านสำหรับการ์ดคลาส 6 ฉันไม่รู้ว่า Mac Book มีตัวอ่านการ์ด SD ในตัวหรือไม่ แต่สำหรับรุ่นภายนอก (USB 2.0) คุณภาพของเครื่องอ่านการ์ด SD (ชิปที่ใช้ ฯลฯ ) ก็มีความสำคัญต่อประสิทธิภาพโดยรวมเช่นกัน แต่การอ่านจะเร็วขึ้นเมื่อใช้อุปกรณ์เหล่านี้ในการเขียน
ikku

ขอบคุณ มันเป็นแบบบูรณาการ ประสิทธิภาพการอ่านค่อนข้างดี ประสิทธิภาพการเขียนที่แย่จริงๆ
ScrollerBlaster

คำตอบ:


6

ระดับความเร็วการ์ด SD ระบุระดับการอ่าน / เขียนขั้นต่ำที่การ์ดควรมีในขณะบันทึกวิดีโอ หมายเลขคลาสคือขีด จำกัด ความเร็วที่ต่ำกว่าเป็น MB / s ที่คุณควรได้รับเมื่อใช้การ์ด

อย่างไรก็ตามโปรดทราบว่าการอ่านจากการ์ดมักจะง่ายกว่า (และเร็วกว่า) กว่าการเขียน นี่คือเหตุผลที่การ์ดคลาส 6 ปกติจะมีความเร็วในการเขียน 6MB / s โดยความเร็วในการอ่าน 15-20 MB / s (แต่รับประกันเพียง 6MB / s เท่านั้น)

ความเร็วในการอ่าน / เขียนสามารถถูก จำกัด ด้วยบัตรเท่านั้น แต่ยังมีปัจจัยต่าง ๆ มากมายทั้งฮาร์ดแวร์และซอฟต์แวร์ โดยเฉพาะอย่างยิ่งอาจถูก จำกัด ด้วยปัญหาบางอย่างกับเครื่องอ่านบัตร / นักเขียน

ดังนั้นในสถานการณ์ของคุณดูเหมือนว่าการ์ดของคุณมีประสิทธิภาพการทำงานที่แย่มากใน Mac Book Air ของคุณในขณะที่มีประสิทธิภาพที่เหมาะสม (และสมจริง) บน RaspberryPi อย่างไรก็ตามเราไม่สามารถแน่ใจได้ว่าเนื่องจากคุณทดสอบความเร็วในการเขียนบน Mac Book และความเร็วในการอ่านบน RaspberryPi และอย่างที่ฉันได้กล่าวไปแล้วมันไม่สามารถเทียบเคียงได้ นอกจากนี้ยังยากที่จะแสดงความคิดเห็นว่าทำไมคุณถึงได้รับผลลัพธ์ดังกล่าวเนื่องจากคุณไม่ได้ระบุวิธีทดสอบความเร็วเหล่านั้น


ฉันต้องทดสอบการอ่านและเขียนบนทั้งสองแพลตฟอร์ม ฉันกำลังใช้dd
ScrollerBlaster

@ScrollerBlaster: คุณไม่สามารถเปรียบเทียบความเร็วในการอ่านและเขียนได้ ในทำนองเดียวกันเมื่อทำการทดสอบอะไรก็ตามกฎง่ายๆคือการเปลี่ยนแปลงสิ่งเดียวในแต่ละครั้ง แต่คุณเปลี่ยนทุกอย่าง (OS, โฮสต์คอมพิวเตอร์, เครื่องอ่านการ์ด) แต่มีสิ่งหนึ่ง (การ์ด SD) ในการตั้งค่าของคุณเพื่อที่จะไม่ให้ผลลัพธ์ที่มีความหมาย
Krzysztof Adamski

ฉันได้กล่าวว่าฉันจะเปรียบเทียบอ่านและเขียนบนระบบปฏิบัติการเดียวกัน คุณมีปัญหากับวิธีการนั้นหรือไม่?
ScrollerBlaster

@ScrollerBlaster: ไม่ไม่เลย ฉันแค่อยากจะชัดเจนในสิ่งที่ฉันหมายถึงโดยบอกว่าพวกเขาไม่ได้เปรียบในคำตอบของฉัน โปรดจำไว้ว่าคำตอบนี้ไม่เพียง แต่สำหรับคุณ แต่สำหรับคนอื่น ๆ ที่อาจมีปัญหาที่คล้ายกันในอนาคตดังนั้นฉันจึงพยายามทำตามคำแนะนำทั่วไปที่เป็นไปได้
Krzysztof Adamski

เมื่อคุณชี้ให้เห็นในโพสต์ของคุณว่าการทดสอบของฉันไม่ได้เปรียบเทียบแอปเปิ้ลและส้มนี่เป็นจุดที่ถูกต้องมาก ในความคิดเห็นที่ 1 ของฉันฉันระบุว่าฉันจะทำซ้ำการทดสอบซึ่งหมายความว่าฉันจะทำซ้ำการอ่านและเขียนบนแพลตฟอร์มทั้งสอง หลังจากนั้นไม่นานคำแนะนำของคุณที่มีต่อฉันก็ไม่จำเป็น ข้อสรุปเกี่ยวกับ Air กับ PI ยังคงมีอยู่ก่อนกำหนด การทดสอบที่เกี่ยวข้องมากที่สุดจะเป็นการทดสอบการอ่านและการเขียนบน PI เนื่องจากนี่เป็นฟอรัม PI หากคุณมีddคำสั่งให้ทำแบบทดสอบการเขียนที่ปลอดภัยฉันจะใช้มัน!
ScrollerBlaster

10

เพื่อให้ได้ความเร็วสูงสุดจากช่องเสียบ SD ของ MacBook คุณต้องใช้อุปกรณ์ 'raw disk'

นี่คือการ์ด SanDisk Ultra Class 10:

~/Desktop/rpi $ sudo dd if=2012-12-16-wheezy-raspbian.img of=/dev/disk1 bs=8m
231+1 records in
231+1 records out
1939865600 bytes transferred in 1076.078932 secs (1802717 bytes/sec)

เปรียบเทียบสิ่งนี้กับการใช้/dev/rdisk1แทน/dev/disk1

~/Desktop/rpi $ sudo dd if=2012-12-16-wheezy-raspbian.img of=/dev/rdisk1 bs=1m
1850+0 records in
1850+0 records out
1939865600 bytes transferred in 129.712100 secs (14955163 bytes/sec)

1.8MB / s เทียบกับ 14.9MB / s - เพิ่มขึ้นเกือบ10 เท่า !


ความแตกต่างระหว่าง disk และ rdisk คืออะไร?
valentt

"พวกเขาอยู่ใกล้กับดิสก์ทางกายภาพมากกว่าแคชบัฟเฟอร์ / dev / ดิสก์โหนดในทางกลับกันเป็นอุปกรณ์บล็อกพิเศษบัฟเฟอร์และมีการใช้งานเป็นหลักโดยรหัสระบบแฟ้มของเคอร์เนล" - ตรวจสอบhidutilหน้า man สำหรับข้อมูลเพิ่มเติม
Bert

1
สิ่งนี้อาจทำให้เข้าใจผิดเนื่องจากขนาดบล็อกเปลี่ยนไประหว่างการทดสอบสองครั้ง
Nick

FWIW: ฉันเปลี่ยนขนาดบล็อกเป็น 1 ม. และอุปกรณ์ / dev / rdisk1 และความเร็วในการเขียนของฉันเพิ่มขึ้นจาก ~ 1.75MB / วินาทีเป็น ~ 11.4MB / วินาทีด้วยการ์ดคลาส 10
การ์ดเนอร์ Bickford

ฉันสามารถยืนยันได้ - การเขียนภาพสำหรับการ์ด RPi SD ของฉันเร็วขึ้น 20 เท่าเมื่อฉันใช้ rdisk2 ฉันเก็บค่าคงที่ขนาดบล็อกสำหรับสิ่งนี้ (4m) ใช้ / dev / disk2, gdd เขียนที่ 197 kB / s ใช้ / dev / rdisk2 มันเขียนที่ 10.6 MB / s
judepereira

1

คุณยังสามารถใช้คำสั่งเหล่านี้สำหรับการเปรียบเทียบโดยไม่มีอิทธิพลของแคชที่โหลดลงใน RAM:

มาตรฐานความเร็วในการอ่าน: $ sudo dd if = / dev / sdX1 ของ = / dev / zero bs = 1M count = 400 iflag = direct

มาตรฐานความเร็วในการเขียน: $ sudo dd if = / dev / ศูนย์ของ = / dev / sdX1 bs = 1M count = 400 skip = 1,000 oflag = direct

ตรวจสอบให้แน่ใจว่าใช้ oflag = direct และ iflag = direct ทุกครั้งเมื่อทำการทดสอบการเขียนและอ่านเกณฑ์มาตรฐานหรือคุณเสี่ยงต่อผลลัพธ์ที่เป็นจริงคือ filecache เขียนและอ่านเวลา


0

ใน 2015 MBP ที่ใช้ OSX 10.11.5 ฉันได้รับความเร็วในการเขียนต่อไปนี้ขณะใช้ dd:

เมื่อเขียนถึง / dev / ดิสก์: 1.80 MB / s เมื่อเขียนไปยัง / dev / rdisk: 12.80 MB / s

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