Kartu SD saya tampaknya berjalan lambat. Saya memiliki kartu ADATA 16 GB SDHC Class 10. Aku memeriksa daftar kompatibilitas yang berisi daftar kartu dengan spesifikasi yang mirip, dan menyatakan bahwa itu "bekerja". Bahkan tugas-tugas sederhana seperti mendapatkan daftar direktori pada direktori kecil dapat mengambil beberapa detik pertama kalinya saya memintanya. Apakah ada alat bisa saya gunakan untuk memverifikasi apa kinerja saya keluar dari kartu SD saya? Juga, apakah ada perubahan konfigurasi saya dapat membuat untuk mendapatkan kartu SD untuk merespon lebih cepat?
Saya menggunakan Raspberry Pi sebagai seedbox BitTorrent tanpa kepala , jadi semua hal yang saya jalankan hanya berjalan di baris perintah. Saya menggunakan 240/16 split untuk memastikan bahwa saya memiliki jumlah maksimum memori yang tersedia.
Pembaruan
Setelah menjalankan beberapa tes seperti yang disarankan @Krzysztof Adamski dengan "dd", saya menerima beberapa hasil yang baik mendapatkan kecepatan baca 20 MB / s dan kecepatan tulis sekitar 10 MB / s. Namun, tampaknya masih memiliki beberapa masalah kecepatan I / O. Saat pengujian, aku berlari "dd" perintah di latar belakang, dan berlari atas, untuk melihat apa yang sedang terjadi. Saya melihat bahwa "mmcqd" Proses itu mengambil sedikit penggunaan prosesor, antara 5% dan 10%. Saya melihat-lihat di Internet dan menemukan banyak contoh orang yang melaporkan bahwa "mmcqd" menggunakan cukup banyak CPU. Saya kemudian menjalankan perintah berikut untuk menguji membaca dan menulis pada saat yang sama
sudo dd if=/dev/mmcblk0 of=test.dat bs=1M count=1024
Saat menjalankan perintah ini, saya mendapatkan throughput hanya 977 kB / s, dan "mmcqd" melaporkan penggunaan prosesor antara 10% dan 25% setiap 5 hingga 10 detik, setelah itu akan kembali ke nol. Jadi, saya melakukan beberapa pengujian lagi. Aku berlari dua perintah berikut di latar belakang, dan kemudian menonton apa yang terjadi di atas.
sudo dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1024 &
sudo dd if=/dev/zero of=test.dat bs=1M count=1024 &
Dalam hal ini "mmcqd" akan memuncak sekitar penggunaan prosesor 35%, tetapi throughput jauh lebih baik sekitar 7,5 MB / s untuk membaca dan sekitar 5,3 MB / s untuk menulis.
Tampaknya ada beberapa jenis masalah yang terjadi di sini di mana menulis berat menyebabkan "mmcqd" untuk mengunci sistem. Ini menyebabkan transmisi-daemon melambat ke hampir nol begitu kecepatannya menjadi terlalu tinggi ketika menunggu kartu SD. Saat menjalankan transmisi-daemon Saya juga melihat "mmcqd" penggunaan mendapatkan cukup tinggi.
sumber
Jawaban:
Kecepatan baca kartu uji:
Ada dua cara mudah untuk menguji kecepatan baca (direktori listing hanya operasi baca):
menggunakan perintah dd:
sudo dd if=/dev/mmcblk0 of=/dev/null bs=8M count=100
Ini akan membaca 800MB data dari kartu SD Anda dan membuangnya ke / dev / null. Jika terlalu lama, Anda dapat mengubah jumlah = 100 menjadi menghitung = 10 menjadi hanya membaca 80MB. Setelah perintah selesai harus mencetak pesan dengan kecepatan baca. Anda harus mendapatkan setidaknya beberapa MB / s.
menggunakan perintah hdparm:
sudo hdparm -t /dev/mmcblk0
Ini akan memberi Anda hasil kecepatan yang sama seperti perintah pertama dan juga harus setidaknya beberapa MB / s.
Kecepatan menulis kartu pengujian:
Tidak ada cara mudah untuk menguji kecepatan menulis karena untuk melakukan ini Anda harus benar-benar menulis beberapa data ke kartu. Jika Anda ingin melakukan hal ini pada tingkat rendah (omiting filesystem) Anda akan harus mengganti beberapa data pada kartu dan Anda mungkin tidak ingin melakukan ini. Hal ini dapat dilakukan jika Anda memiliki partisi swap karena dapat dengan mudah dinonaktifkan (dengan
swapoff -a
), diuji dengan dd (dengandd if=/dev/zero of=/dev/{yourswappartitionnanehare} bs=8M count=25
) dan kemudian diciptakan kembali (denganmkswap /dev/{yourswappartitionnanehare}
).Jika Anda tidak memiliki partisi swap, Anda dapat menguji kecepatan penulisan filesystem juga menggunakan perintah dd:
dd jika = / dev / nol = / home / pi / testfile bs = 8M hitung = 25
Ini akan membuat file 200MB di
/home/pi/testfile
. Anda dapat menggunakan nama file lain yang Anda inginkan.Catatan:
dmesg
perintah untuk melihat apakah ada pesan tentang mmc subsistem.sumber
Untuk kinerja kartu SD, sangat penting apakah aksesnya berurutan (seperti dengan dd) atau akses acak dalam blok kecil. Kartu SD, terutama yang berkelas tinggi tampaknya dioptimalkan untuk akses sekuensial, yang bagus untuk menyimpan foto atau video. Namun, untuk menjalankan OS dari akses acak kartu SD lebih penting, karena banyak file kecil dibaca dan ditulis. Saya kira bittorrent juga menghasilkan akses acak.
Ini dua thread diskusi mengandung banyak benchmark kartu SD dan diskusi. Secara umum, kecepatan tulis acak ditemukan menjadi penentu untuk responsif menjalankan OS kartu. Kecepatan ini seringkali jauh lebih rendah daripada kecepatan penulisan sekuensial, yang merupakan kecepatan yang ingin dilaporkan oleh pabrikan. Kelas kartu SD didasarkan pada kecepatan berurutan, dan kelas yang lebih rendah (4 atau 6) mungkin sebenarnya lebih cocok untuk penggunaan raspberry.
Alat iozone mengukur kecepatan berbagai pola akses. Saya telah memposting instruksi singkat untuk mengkompilasi iozone di raspberry di sini .
sumber
Untuk slot onboard RasPI ada diskusi besar di situs RasPI: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=5057&sid=ee346e3e7cea48d2858a143bcf086362
Tidak punya waktu untuk membaca seluruh 12 halaman diskusi, tetapi tampaknya ada masalah dengan sinyal CLK.
sumber
Anda menulis "bittorrent" dan itu memicu tebak / jawaban saya.
Protokol torrent menerima paket secara acak dari seeder acak.
Setelah Anda mulai menggunakan torrent pada sistem file apa pun, itu menjadi agak terfragmentasi. Ini akan melukai kinerja besar.
Dari apa yang saya ketahui tentang SDcard, menjalankan FAT / FAT32 dan bahkan lebih buruk untuk menangani fragmentasi.
Jadi temukan cara untuk mendefrag kartu SD Anda, atau salin semua file darinya dan kemudian instal ulang OS.
Terakhir, menulis BANYAK (seperti yang akan dilakukan mesin bittorrent) akan merobek SDCARD Anda lebih cepat dari penggunaan normal. Saya tidak mengatakan itu salah untuk melakukannya, sebenarnya saya telah mempertimbangkan untuk serupa juga. Tapi - itu mungkin menjadi alasan untuk masalah Anda.
Saya berharap ada klien torrent yang secara otomatis akan mentransfer / memindahkan file yang diunduh ke tujuan lain setelah unduhan + "waktu unggah yang dipesan" selesai.
Maka defragmenting akan berjalan jauh lebih cepat.
sumber