Apa konfigurasi perangkat keras berkinerja tertinggi?

35

Saya tahu bahwa angka patokan yang tepat akan bervariasi antara produsen, tetapi secara umum jika Anda hanya mempertimbangkan flash drive ujung yang lebih tinggi, kartu SD, dan HDD USB dan Raspberry Pi Anda terhubung ke jaringan melalui switch ethernet apa konfigurasi tercepat dari jaringan sudut pandang transfer data? Saya hanya mencari jawaban di mana orang benar-benar mencoba konfigurasi yang tercantum di bawah ini dan memiliki hasil nyata, bukan teori.

Jelas kartu SD harus digunakan karena diperlukan untuk setidaknya bagian dari siklus boot, tetapi mari kita asumsikan bahwa Anda memiliki partisi data tambahan pada setiap perangkat yang terdaftar di bawah ini yang memiliki kecepatan transfer jaringan tertinggi pada Raspberry Pi?

  1. Kartu SD
  2. USB flash drive
  3. HDD USB

Pertanyaan ini bersifat non-sepele karena pada beberapa titik pemrosesan overhead yang terkait dengan salah satu perangkat penyimpanan ditambah dengan komunikasi ethernet dapat berdampak pada kecepatan transfer, juga port ethernet pada Raspberry Pi dikendalikan oleh bus USB sehingga secara umum throughput harus dipengaruhi oleh koordinasi transfer data ethernet dan transfer data media USB. Saya tidak tahu apakah kartu SD berada di bus USB bersama yang sama dengan port USB dan port ethernet tetapi jika tidak, saya kira itu akan menjadi manfaat kinerja yang cukup besar.

Diedit untuk memasukkan transfer jaringan sebagai persyaratan untuk tolok ukur

Dan B
sumber
1
FYI, penjawab dapat digunakan sudo hdparm -t /dev/sdxsebagai alat yang berguna untuk pembandingan.
Jivings
2
Saya tidak memiliki tolok ukur, tetapi ini adalah pengetahuan umum: ssd> hdd> flash> sd> media optik
Alexander - Reinstate Monica
+1 - Poin bagus tentang port SD - apakah itu di bus yang sama dengan USB / ethernet? Apakah berbagi beban di SD dan penyimpanan USB yang terpasang berfungsi lebih baik?
Jon Egerton
@XAleXOwnZX yakin jika bus di mana perangkat tersebut aktif dapat cocok dengan kinerja maksimal perangkat maka itu adalah pesanan, tetapi saya bertaruh bahwa karena Raspberry Pi hanya memiliki USB, pesanan Anda akan lebih seperti ssd = hdd = flash> optik dan SD dapat berada di mana saja dalam daftar itu berdasarkan jika busnya terpisah dari port USB.
Dan B
Itu poin yang bagus, tetapi HDD> Flash pasti. Hard drive USB saya mendapat 30 mb / s dibandingkan dengan flash drive saya 5-10
Alexander - Reinstate Monica

Jawaban:

35

Dalam penentuan tolok ukur Anda harus selalu menetapkan apa batas Anda. Karena jika Anda berharap untuk mendapatkan 100mbs dari itu daripada Anda hanya menipu diri sendiri!

Lihatlah desain Blok ini dari RaspberryPI Model-B masukkan deskripsi gambar di sini

Jadi kami membangun fakta yang sangat penting di sini. Ethernet macet oleh pengontrol USB karena bentuk blok digram yang kami buat terhubung ke hub USB. (Tidak ada indikasi yang jelas apakah ini menggunakan bus lain atau hanya USB2?)

Ohh look - diagram blok lain,

masukkan deskripsi gambar di sini

Sekarang bahkan lebih menjelaskan situasi. Pengontrol 10/100 terhubung ke hub USB- sayangnya, sekali lagi, tidak ada di mana pada spesifikasi apakah dikatakan seberapa cepat hub berkomunikasi dengan pengontrol lan - mengharapkan fakta kunci yang mengatakan kecepatan dan lan usb dinegosiasikan untuk lingkungan usb kecepatan campuran.

Di mana Kartu SD?

Ternyata kartu SD terhubung langsung ke BCM2835 (halaman 65) dan mereka menjelaskan dengan sangat rinci bagaimana kinerja dipengaruhi dari berbagai tingkat konfigurasi. Satu hal penting yang perlu diperhatikan adalah bahwa jika kartu SD memiliki Clock khusus, ia dapat berjalan secara independen dari CPU inti / GPU dengan kecepatan penuh (dari kartu apa pun dan standar yang digunakan - Anda dapat melihatnya didukung beberapa standar.)

masukkan deskripsi gambar di sini

Jadi apa artinya itu?

Ini berarti jika Anda membandingkan kartu SD yang lebih cepat dan pen drive jelek (4gb / 8gb) Anda kemungkinan besar akan mendapatkan perbedaan kinerja yang sangat besar. Jadi sekarang ini menimbulkan pertanyaan, bagaimana CPU / GPU menangani komunikasi dengan perangkat tertanam yang luar biasa ini (chip usb / lan) dan pada kecepatan apa ia dapat berkomunikasi.

Anda lihat sejauh mana teori sebenarnya bisa berjalan sebelum kita benar-benar melakukan pembandingan? Poin kunci lain di sini adalah - Bagaimana cara CPU mengontrol aliran data. Apakah menggunakan saluran jam terpisah seperti yang disarankan?

DI dunia yang ideal Anda akan berpikir bahwa LAN / USB ini akan menanganinya. Tapi itu membutuhkan MCU .. apakah kita melihat MCY di mana saja dalam diagram blok itu .. TIDAK!

Jadi CPU harus meminta IO DATA mengirimkannya port USB kemudian pergi ke port LAN (melalui HUB USB yang Sama) Ya .. sehingga akan menyebabkan beberapa masalah kecepatan di suatu tempat.

Juga hal yang bagus untuk dicatat apa yang terjadi ketika Anda menyalin ke pen drive USB dan dari kartu SD semua melalui LAN .. itu akan menyebabkan beberapa lalu lintas.

Kita perlu membandingkan berbagai aspek

Dalam menetapkan apa yang kita coba patok, kita dapat mengajukan pertanyaan dunia nyata.

  1. Seberapa cepat USB internal menangani data dari SD?
  2. Berapa banyak CPU yang digunakan untuk membaca / menulis ke SD lalu ke LAN?
  3. Berapa banyak CPU yang digunakan untuk membaca / menulis ke USB Pen drive?
  4. Apakah menyalin data apa pun secara langsung memengaruhi penggunaan CPU?
  5. Seberapa baik chip USB / LAN tertanam menangani data pembacaan dari 2 sumber kembali ke port LAN dan apakah hal itu mempengaruhi CPU secara proporsional?
  6. Tidak perlu untuk menguji apakah lan akan mendapatkan 10mb / s penuh karena bottlenecked oleh keadaan di mana hub USB berada.

Sekarang setelah Anda tahu apa yang Anda perjuangkan, saya menantang Anda untuk menjawabnya sendiri.

Anda mungkin menemukan ini titik awal yang sangat baik.

Referensi

Tapi kebanyakan,

pengetahuan dan penilaian teknis saya sendiri yang saya buat berdasarkan pengalaman saya sendiri. OP mengajukan pertanyaan yang sangat bagus tetapi kurang memahami bahwa tanpa pemahaman teoritis tentang suatu sistem Anda akan gagal dalam menilai / memecahkan masalah-masalah praktis.

Hasil

(4) Jawaban ini menunjukkan beberapa pengujian pembajakan turun ke bumi. Dan itu membuktikan bahwa melakukan transaksi data yang intens secara langsung mempengaruhi CPU (hanya saja tidak yakin apakah itu kartu SD atau proses pengalihan data di dalam chip BCM ke chip USB / LAN)

(6) Telah dibuktikan bahwa satu-satunya leher botol akan menjadi sumber (misalnya kartu SD lambat) Hub USB berhasil memompa data pada 90% + tetapi jawaban untuk pertanyaan 4 dan 5 dapat langsung mempengaruhi kinerja ini.

Jadi melakukan riset dan kontribusi dari pengguna lain, kami mulai membangun dan mendapatkan hasil awal.

Berikut adalah bagan yang bagus untuk membantu memvisualisasikan apa yang sedang kita hadapi.

masukkan deskripsi gambar di sini

Piotr Kula
sumber
1
+1 Jawaban bagus. Meskipun bisa tolong berikan sumber untuk gambar Anda?
Jivings
1
Jawaban ini berfungsi sangat baik untuk menambahkan rincian pada pertanyaan yang menjelaskan mengapa masing-masing media penyimpanan yang berbeda dapat memiliki angka kinerja yang sangat berbeda. Terima kasih atas informasi tambahan yang semestinya saya tambahkan pada pertanyaan itu sendiri.
Dan B
1
USB masih sekitar 30 MB / s, yaitu banyak yang harus disediakan untuk jaringan 100 Mbit.
Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen ya itu benar. Tapi salah satu pertanyaan saya berkaitan dengan kinerja hub usb tertanam. Benar-benar cepat? dan apakah itu tergantung pada ARM CPU - juga apa yang terjadi ketika Anda menyalin sumber 2 bentuk melalui LAN .. Itu adalah sesuatu yang layak pembandingan. Saya tidak mengatakan itu tidak akan melakukannya - tetapi tentu saja bisa menjadi masalah dalam beberapa situasi.
Piotr Kula
Sepertinya Anda memiliki pengalaman di bidangnya. Bisakah Anda melakukan pengukuran aktual?
Thorbjørn Ravn Andersen
3

Jelas, kinerja tertinggi adalah dengan ramdisk.

Itu tidak akan banyak berguna untuk perangkat penyimpanan yang terhubung jaringan, tetapi kemudian, pi belum tentu merupakan pilihan terbaik untuk aplikasi tetap itu.

Untuk beberapa hal di mana fleksibilitas pi cocok secara unik, persyaratan penyimpanan aktual mungkin cukup kecil untuk dijalankan secara eksplisit dari ramdisk, atau mungkin secara implisit dari ram melalui mekanisme caching disk (ramdisk linux hanyalah cache disk tanpa backing disk).

Anda masih memerlukan kartu untuk boot, tetapi sebagai manfaat tambahan dari menjalankan ram, Anda dapat membuat kartu itu hanya dapat dibaca dan meminimalkan risiko rusak.

Chris Stratton
sumber
Anda tidak perlu kartu untuk boot dari. Sistem operasi / boot loader memerlukannya! Anda dapat boot dari antarmuka Serial atau LAN jika Anda mengubah bootloader untuk melakukannya. Jika Anda cukup teknis Anda bisa menambahkan ram 3GB ke RPI - tapi itu benar-benar off topic. Faktanya adalah semuanya berjalan melalui hub USB bodoh! bleeeh
Piotr Kula
Bukankah bootloader, setidaknya yang bisa Anda ubah, terletak di kartu SD? Anda mungkin bisa mendapatkan boot rom internal untuk memuat dari sumber lain jika Anda mengubah beberapa strapping pin konfigurasi.
Chris Stratton
Saya hampir positif chip BCM .. sama seperti arduino misalnya memiliki bootloader .. (seperti BIOS pada PC) Harus ada beberapa program awal untuk memuat program berikutnya dan seterusnya. mengganti bootlaoder pada RPi .. tunggu satu atau dua tahun.
Piotr Kula
ATMEGA arduino adalah contoh mikrokontroler yang dirancang untuk berjalan sendiri, dengan flash internal. Booloader di sana adalah pengguna yang dapat disesuaikan. SOC pi di sisi lain tampaknya berasal dari kelas bagian sistem yang lebih besar yang memerlukan memori eksternal. Ini biasanya memiliki boot loader, tetapi ini adalah mask rom yang tidak dapat diubah setelah mereka meninggalkan pabrik. Dalam produk tradisional yang didasarkan pada sesuatu seperti itu, akan ada chip flash eksternal 4-8 MByte. Tapi pi tampaknya menggunakan kartu SD yang dapat dilepas sebagai gantinya, menghindari masalah seseorang merusak flash yang disolder.
Chris Stratton
Itu menarik. Jadi apakah partisi FAT yang berisi data booting ini? atau itu disimpan di tempat lain di bagian tersembunyi SD? Jika demikian, Anda dapat melakukan upaya yang lebih mudah, coba arahkan kembali proses pemuatan ke "peretasan" lainnya di perangkat ...
Piotr Kula
0

HDD USB atau SSD USB akan memberi Anda kinerja tercepat. Kartu SD menulis sekitar 12 MB / s untuk perangkat class10 dan USB bisa mencapai 30 MB / s.

Saya tidak setuju bahwa hub USB bottlenecking ethernet pada RPi, karena HUB dapat mempertahankan 400 Mbit / s dan ethernet adalah 100. Jadi secara teoritis dapat mempertahankan hingga 4 x Fast ethernet 100Mb / s port.

Malaikat Genchev
sumber
SETIAP kelas 10 SD yang pernah saya uji adalah> 19mb / s tulis. Saya memiliki kelas 6 yang menghasilkan 14mb / s. SanDisk Extreme SD yang mengklaim 45mb / dtk mencapai 50mb / dt dibaca dan 47mb / dt menulis, yang mengejutkan. Lexar 400x SD adalah yang tercepat yang pernah saya uji pada 70mb / s baca, tetapi sekitar 30mb / s tulis. Pada USB 2.0, hampir tidak ada perbedaan antara kartu SD cepat, HDD dan SSD. Semua antarmuka USB 2.0 yang saya hancurkan dengan tutup sekitar 35mb / s. Saya telah melihat USB 2.0 thumb drive yang tutup sekitar 10mb / s dan beberapa bahkan lebih rendah dari itu. Banyak USB 3.0 thumb drive memiliki kecepatan tulis maksimal 10-20 mb / s, bahkan pada port USB 3.0!
Therealstubot
0

Saya mendapatkan maks 4Mb / s menggunakan USB flash drive dan sama untuk USD HDD. Ini sementara hanya menjatuhkan file melalui 'homegroup' jaringan windows ke perangkat yang terhubung ke Raspberry.

Saya mengharapkan setidaknya 10 kali lipat, tetapi saya belum berhasil mempercepat transfer. Saya mencoba transfer FTP langsung ke HDD USB (perangkat ini transfer pada + 60Mb / s ketika terhubung ke laptop saya) tetapi hasilnya sangat buruk. 100KiB / s! Menghasilkan berjam-jam lalu lintas hanya untuk beberapa MB.

Sekarang saya memindahkan HDD antara laptop dan Raspberry Pi untuk transfer data :-(

NookaV
sumber
Saya pikir Anda memiliki masalah konfigurasi / jaringan karena saya dapat mengunggah file langsung ke stik USB saya hingga 24 Mbps. Dan saya pikir saya bisa melakukan yang lebih baik dengan Ethernet daripada Wi-Fi. Saya telah menggunakan vsftpd.
Morgan Courbet