Kecepatan menulis kartu SD tampaknya 14 kali lebih lambat dari kecepatan baca

11

Saya menulis ke kartu SD malam ini dari pembaca kartu internal Mac Book Air, dan kinerja yang dilaporkan adalah 1,4 MB / detik. Saya kemudian membaca mengujinya di Raspberry Pi dan mendapat 20 MB / detik. Ini adalah kartu kelas 6 dan tak satu pun dari angka-angka ini terdengar realistis!

Saya menggunakan dduntuk tes saya. Hasil tes identik untuk membaca dan menulis di kedua komputer:

Raspberry Pi: Baca 20 MB / detik. Tulis 11 MB / detik ...
Udara: Baca 3 MB / detik. Tulis 1,4 MB / detik

Menggunakan perintah ini:

Tes tulis:

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

Baca tes:

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

Ini menunjukkan bahwa anomali yang dirasakan sebenarnya adalah kinerja yang buruk dari pembaca kartu SD Mac Book Air yang terintegrasi! Itu membuat pembuatan gambar sangat lambat.

ScrollerBlaster
sumber
Sandisk mengklaim bahwa kartu kelas 6 memiliki kecepatan baca 20MBps, meskipun Kingston mengklaim 15MBps adalah kecepatan baca untuk kartu kelas 6. Saya tidak tahu apakah Mac Book memiliki pembaca kartu SD terintegrasi atau tidak. Tetapi untuk versi eksternal (USB 2.0) kualitas pembaca kartu SD (chip apa yang digunakan dll) juga penting dari keseluruhan kinerja. Tetapi membaca selalu lebih cepat dengan perangkat ini kemudian menulis.
ikku
Terima kasih. Terintegrasi. Performa baca yang cukup bagus. Performa menulis yang sangat buruk.
ScrollerBlaster

Jawaban:

6

Peringkat kelas kecepatan kartu SD menunjukkan kinerja baca / tulis minimal yang harus dimiliki kartu saat merekam video. Nomor kelas adalah batas kecepatan yang lebih rendah dalam MB / s yang harus Anda dapatkan saat menggunakan kartu.

Perlu diingat, bahwa membaca dari kartu biasanya lebih sederhana (dan karenanya lebih cepat) daripada menulis. Inilah sebabnya mengapa kartu kelas 6 biasa akan memiliki kecepatan tulis 6MB / s dengan kecepatan baca 15-20 MB / s (tetapi hanya 6MB / s yang dijamin).

Kecepatan membaca / menulis dapat dibatasi tidak hanya oleh kartu tetapi juga oleh banyak faktor yang berbeda, baik perangkat keras dan perangkat lunak. Terutama itu dapat dibatasi oleh beberapa masalah dengan pembaca kartu / penulis.

Jadi dalam situasi Anda, tampaknya kartu Anda memiliki kinerja yang sangat buruk di Mac Book Air Anda sementara itu memiliki kinerja yang tepat (dan realistis) di RaspberryPi. Kami tidak yakin, karena Anda menguji kecepatan menulis di Mac Book dan membaca kecepatan pada RaspberryPi dan seperti yang saya sebutkan sebelumnya, mereka tidak dapat dibandingkan. Sulit juga mengomentari mengapa Anda mendapatkan hasil seperti itu karena Anda tidak menentukan bagaimana Anda menguji kecepatan itu.

Krzysztof Adamski
sumber
Saya perlu menguji membaca dan menulis di kedua platform. Saya menggunakandd
ScrollerBlaster
@ SkrolBlaster: Anda tidak dapat membandingkan kecepatan baca untuk menulis satu sama lain. Serupa, saat menguji apa saja, aturan praktis yang baik adalah mengubah hanya satu hal pada satu waktu. Tetapi Anda mengubah segalanya (OS, komputer host, pembaca kartu) tetapi satu hal (kartu sd) dalam pengaturan Anda, sehingga tidak akan memberi Anda hasil yang bermakna.
Krzysztof Adamski
Saya katakan saya akan membandingkan baca dan tulis pada OS yang sama. Apakah Anda memiliki masalah dengan pendekatan itu?
ScrollerBlaster
@ScrollerBlaster: Tidak, tidak sama sekali. Saya hanya ingin memperjelas apa yang saya maksud dengan mengatakan mereka tidak sebanding dengan jawaban saya. Ingat bahwa jawaban ini tidak hanya untuk Anda, tetapi untuk semua orang lain yang mungkin memiliki masalah serupa di masa mendatang, jadi saya mencoba membuat saran saya semurah mungkin.
Krzysztof Adamski
Ketika Anda menunjukkan dalam posting Anda bahwa tes saya tidak membandingkan apel dan jeruk, ini adalah poin yang sangat valid. Dalam komentar pertama saya, saya menyatakan akan mengulang tes, yang berarti saya akan mengulang membaca dan menulis pada kedua platform. Setelah itu saran Anda selanjutnya kepada saya tidak perlu. Ke depan, kesimpulan apa pun tentang Air versus PI masih prematur. Tes yang paling relevan adalah tes baca dan tulis pada PI, mengingat ini adalah forum PI. Jika Anda memiliki ddperintah untuk melakukan tes tulis yang aman, saya akan menggunakannya!
ScrollerBlaster
10

Untuk mendapatkan kecepatan terbaik dari slot SD MacBook Anda, Anda perlu menggunakan perangkat 'cakram mentah'.

Ini adalah kartu 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)

Bandingkan ini dengan menggunakan /dev/rdisk1bukan/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 dibandingkan dengan 14.9MB / s - hampir 10x peningkatan!

Bert
sumber
apa perbedaan antara disk dan rdisk?
valentt
"Mereka lebih dekat ke disk fisik daripada cache buffer. / Dev / disk node, di sisi lain, adalah perangkat khusus blok buffered dan digunakan terutama oleh kode sistem file kernel." - Periksa hidutilhalaman manual untuk informasi lebih lanjut.
Bert
1
Ini berpotensi menyesatkan karena ukuran blok berubah antara dua tes.
Nick
FWIW: Saya mengubah ukuran blok menjadi 1m dan perangkat / dev / rdisk1 dan kecepatan tulis saya berubah dari ~ 1.75MB / detik menjadi ~ 11.4MB / detik dengan kartu kelas 10.
Gardner Bickford
Saya dapat mengkonfirmasi ini - menulis gambar untuk kartu SD RPi saya 20x lebih cepat ketika saya menggunakan rdisk2. Saya menjaga ukuran blok konstan untuk ini (4m). Menggunakan / dev / disk2, gdd menulis pada 197 kB / s. Menggunakan / dev / rdisk2, ia menulis di 10,6 MB / s
judepereira
1

Anda juga dapat menggunakan perintah ini untuk melakukan pembandingan tanpa pengaruh cache yang dimuat ke dalam RAM:

baca patokan kecepatan: $ sudo dd if = / dev / sdX1 dari = / dev / zero bs = 1M hitung = 400 iflag = langsung

tulis tolok ukur kecepatan: $ sudo dd jika = / dev / nol = / dev / sdX1 bs = 1M hitung = 400 lewati = 1000 oflag = langsung

Pastikan untuk selalu menggunakan oflag = direct dan iflag = direct ketika masing-masing melakukan tes benchmark menulis dan membaca, atau Anda berisiko untuk mendapatkan hasil yang sebenarnya adalah waktu menulis dan membaca filecache.

valentt
sumber
0

Pada 2015 MBP saya yang menjalankan OSX 10.11.5, saya menerima kecepatan tulis berikut saat menggunakan dd:

saat menulis ke / dev / disk: 1,80 MB / s saat menulis ke / dev / rdisk: 12,80 MB / s

Fr. Austin
sumber