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?
- Kartu SD
- USB flash drive
- 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
sudo hdparm -t /dev/sdx
sebagai alat yang berguna untuk pembandingan.Jawaban:
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
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,
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.)
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.
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.
sumber
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.
sumber
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.
sumber
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 :-(
sumber
vsftpd
.