ฉันจะเพิ่มความเร็วในการเขียนการ์ด SD (โดยใช้ / dev / disk *) บน MacBook Pro ได้อย่างไร


17

ฉันได้ติดตั้งลินุกซ์ดิสทริบิวชันลงใน SD การ์ดจาก MacBook ของฉันแม้ว่าพวกเขาจะใช้เวลามากกว่าหนึ่งชั่วโมงในการถ่ายโอนไม่กี่ร้อย MB (โดยใช้ddและ/dev/disk1)

เอาต์พุต dd

หากคุณดูที่เอาต์พุตข้างต้นมันทำงานที่ประมาณ 0.31 MB / s! การ์ด SD เป็น Class 10 และ MacBook Pro ของฉันคือ 2.66 GHz Intel Core 2 Duo, 4 GB 1067 MHz DDR3 และ OS X Lion 10.7.4 นี่คือรายงานฮาร์ดแวร์สำหรับเครื่องอ่านการ์ด:

สร้างขึ้นในเครื่องอ่านการ์ด SD:

ID ผู้ขาย: 0x05ac
รหัสผลิตภัณฑ์: 0x8403 รุ่น
: 1.00 หมายเลขซีเรียล: 9833

การ์ด SDHC:

ความจุ: 7.97 GB (7,969,177,600 bytes)
สื่อที่ถอดออกได้: ใช่ชื่อ BSD: disk1
ประเภทแผนที่พาร์ติชัน: MBR (Master Boot Record)
สถานะ SMART: ไม่รองรับ
ปริมาณ:

PI:
ความจุ: 7.96 GB (7,964,983,296 ไบต์)
ระบบไฟล์: MS-DOS
ชื่อ BSD: disk1s1
เนื้อหา: DOS_FAT_32

แนวคิดใดที่การถ่ายโอนไป/dev/disk1ช้ามากและฉันจะเร่งความเร็วได้อย่างไร


ฟังดูเหมือนปัญหาฮาร์ดแวร์สำหรับฉัน ฉันได้ยินมาว่า MBP 2011 มีตัวอ่าน SD ที่ไม่ดี แต่อาจมีปัญหากับตัวก่อนหน้าเช่นกัน ลองการ์ด SD อื่น แต่อาจเป็นปัญหากับตัวอ่านการ์ดซึ่งติดอยู่กับบอร์ดตรรกะใน MBP เกือบทุกตัว
robmathers

ฉันซื้อแล็ปท็อปในปี 2009 Fedora คัดลอกมาแล้ว 2 ชั่วโมงและฉันก็เลิกไปแล้ว เวลาเครื่องอ่านการ์ดใหม่ฉันคิดว่า
StuR

น่าสนใจว่าอัตราข้อมูลต่อเนื่องนั้นสูงขึ้นมากถ้าคุณใช้ Finder หรือ Disk-Utility เนื่องจากผู้ร้ายดูเหมือนจะเป็นบัฟเฟอร์ของ / dev / disk * ดังที่อธิบายไว้ในคำตอบของ @pci
iolsmit

คำตอบ:


38

เพิ่งพบปัญหาเดียวกันและดูเหมือนว่า/dev/disk*จะช้าเพราะบัฟเฟอร์ หากคุณใช้อุปกรณ์ rdisk ที่สอดคล้องกัน (เช่น:) /dev/rdisk1s1คุณควรได้รับความเร็วตามที่คุณคาดหวัง เห็นได้ชัดว่านี่เป็นสิ่งที่ BSD

ตัวอย่าง:

% sudo dd if=pi.bin of=/dev/disk1 bs=1m count=4095
^C408+0 records in
407+0 records out
426770432 bytes transferred in 1393.452305 secs (306268 bytes/sec)

% sudo dd if=pi.bin of=/dev/rdisk1 bs=1m count=4095
4095+0 records in
4095+0 records out
4293918720 bytes transferred in 378.669512 secs (11339489 bytes/sec)

Ref:


1
นี่คือคำตอบที่ดีที่สุดที่ฉันได้พบกับคำถามนี้เพราะฉันสามารถยืนยันผลลัพธ์ได้ ย้ายจาก ~ 1.35 MB / วินาทีถึง 20MB / วินาที :)
nessence

1
แน่นอนว่าเป็นความอัปยศ (สำหรับ Apple / BSD) - แม้ว่าการใช้ dd จะให้ประสิทธิภาพที่ดีที่สุดเท่าที่เป็นไปได้เนื่องจากคุณมีการเข้าถึงการเขียน (หรืออ่าน) นานหนึ่งครั้ง ในระดับไฟล์และด้วยการเข้าถึงแบบสุ่มประสิทธิภาพของคุณจะแตกต่างกันมากขึ้นอยู่กับการ์ด SD - และ: @pci การหาที่ยอดเยี่ยม!
iolsmit

2
มันเป็นเรื่องยาว แต่คุณเพิ่งช่วยฉันแซลมอนมูลค่า 90 ดอลลาร์ที่จะแย่ถ้าฉันไม่สามารถสูบบุหรี่ทันเวลา
deweydb

3
เป็นเรื่องน่าขันที่คุณจะสามารถดาวน์โหลดไฟล์ที่ 20 + Mbps ในระยะทางหลายพันกิโลเมตรและไม่กี่เมตรสุดท้ายที่เป็นแบบไร้สาย แต่การถ่ายโอนข้อมูลสองสามเซนติเมตรผ่านการเชื่อมต่อที่ยากจะช้ากว่ามาก
โจนาธาน

ขอบคุณ ฉันกำลังดูการคัดลอกข้อมูล 7GB ในช่วง ~ 10 ชั่วโมงเมื่อฉันตัดสินใจว่ามันไม่เป็นที่ยอมรับและพบคำตอบนี้ - มีประโยชน์มาก
บาราค

3

อาจเป็นไปได้ว่าการ์ด SD นั้นช้า

ดูเกณฑ์มาตรฐานนี้ (การเขียนแบบสุ่ม 4 KB (QD = 1) [MB / s]) และคุณจะเห็นว่าการ์ด SD ส่วนใหญ่มีประสิทธิภาพการเขียนที่ไม่ดี (ต่ำกว่า 100 kB / s) สำหรับไฟล์ขนาดเล็ก - และ a การติดตั้ง linux ทั่วไปประกอบด้วยไฟล์ขนาดเล็กจำนวนมากถูกเขียนลงดิสก์

เครื่องอ่านบัตรภายในควรมีความสามารถในการอ่าน / เขียนอย่างน้อย 20 MB / s - เป็นไปได้ยากมากที่เครื่องอ่านบัตรเครื่องอื่นจะปรับปรุงประสบการณ์ของคุณด้วยการ์ด SD นี้

เมื่อเขียนไฟล์ทั้งหมดเช่นติดตั้งระบบคุณอาจจะสามารถรัน Linux จากการ์ด SD ในความเร็วที่ยอมรับได้เนื่องจากเป็นส่วนใหญ่ที่ผู้อ่านสามารถอ่านได้


1
สำหรับผู้มีสิทธิ์ลงคะแนนเสียงให้ดูโพสต์นี้
iolsmit

มันจะเป็นการทดสอบที่ดีแม้ว่าจะทดสอบการ์ดในเครื่องอ่านอื่นที่รู้ว่าดีและทดสอบการ์ดที่ทราบว่าดีในเครื่องอ่านที่สงสัย นอกจากนี้โปรดสังเกตว่า "เอกสาร" ทั้งหมดสำหรับการสร้างไฟล์ใหม่ (ต่างจากการเขียนเนื้อหา) ในโครงสร้างข้อมูลระบบไฟล์นั้นมีขนาดใหญ่มากสำหรับไฟล์ขนาดเล็กจำนวนมาก
Thorbjørn Ravn Andersen

เมื่อการ์ด SD ไม่เร็วมากความเร็ว (328198 ไบต์ / วินาทีและใหม่กว่า 288881 ไบต์ / วินาที) ไม่สามารถจินตนาการได้สำหรับการ์ด SD ปัจจุบัน (รู้สึกเหมือนฟลอปปี้ไดรฟ์) เนื่องจากนี่คือ 'dd' จึงหมายถึงไฟล์เดียวไม่ใช่ไฟล์ขนาดเล็กหลาย ๆ ไฟล์
บาราค

1

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


1
ตามที่man mountasync เป็นค่าเริ่มต้นแล้ว
nohillside

1

ไม่นี่เป็นปัญหาบางอย่างกับ Mac OS ฉันได้รับประสิทธิภาพที่เร็วขึ้นอย่างมีนัยสำคัญเมื่อฉันทำการดำเนินการเดียวกันนี้โดยใช้ Linux บนเครื่องเสมือนที่ทำงานบน Macintosh เดียวกัน คือ VM นั้นเร็วกว่าระบบปฏิบัติการดั้งเดิมประมาณ 5 เท่า

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