Pertama-tama, saya menemukan pertanyaan serupa tetapi tidak benar-benar menyelesaikan masalah saya. Saya mencoba mencari tahu apakah bus USB untuk perangkat yang saya gunakan adalah hambatan dalam program saya.
Bagaimana saya bisa memonitor bus USB (mirip dengan cara kerja gnome-system-monitor) untuk menunjukkan pemanfaatan bus? Pada dasarnya saya ingin mengidentifikasi ketika bus sedang 'maxed' out. Saya kira apa yang saya cari adalah beberapa antarmuka untuk usbmon, karena sepertinya itu akan melakukan apa yang saya butuhkan.
Ini muncul dari pengujian USRP dan GNU Radio. Saya mengalami situasi di mana tampaknya bus USB bisa menjadi faktor pembatas, jadi saya mengajukan pertanyaan yang lebih umum tentang pemantauan kinerja USB.
usb
performance
monitoring
Tuan Shickadance
sumber
sumber
Jawaban:
Karena usbmon memberikan panjang setiap paket yang ditransfer, saya akan mendekati ini dengan menulis program cepat untuk mem-parsing
0u
file (yang memiliki data untuk semua perangkat USB). Itu akan memilih bus USB dan nomor perangkat, kemudian tetap menjalankan total bidang panjang paket di kedua arah untuk setiap perangkat.Ini kemudian akan memberi Anda jumlah data yang ditransfer per perangkat, di setiap arah. Jika Anda mencetaknya satu detik sekali, Anda akan mendapatkan gagasan yang cukup bagus tentang throughput masing-masing perangkat. Perhatikan bahwa itu tidak akan menyertakan overhead USB apa pun, tetapi jika Anda membandingkan angka dengan perangkat yang mampu memenuhi bandwidth yang tersedia, Anda akan tahu apakah Anda semakin mendekati batas.
sumber
Gunakan usbtop , ini memberikan gambaran yang bagus tentang perangkat apa yang menggunakan berapa banyak bandwidth:
sumber
usbtop
. Itu terlihat bermanfaat. Berikut ini cara menginstalnya: unix.stackexchange.com/a/489268/114401 .apt install usbtop
.1. usbtop:
Seperti yang ditunjukkan sebas , usbtop tampaknya memberikan tingkat minimum informasi bermanfaat tertentu (walaupun itu bisa jauh lebih baik), jadi saya merekomendasikannya.
Berikut cara menginstalnya:
Klon git repo:
Arahkan ke direktori yang baru saja dibuat dari
git clone
:Instal dependensi:
Buat direktori bangunan lokal & cd ke dalamnya:
Jalankan cmake untuk bersiap membangun usbtop dari sumber:
Bangun usbtop dari sumber:
Pasang usbtop:
Muat modul kernel usbmon untuk membuka akses ke bus USB (saya pikir inilah fungsinya, tapi saya tahu itu wajib):
Jalankan usbtop (jika ini tidak berhasil, gunakan
sudo usbtop
saja):Jika saya melewatkan sesuatu, beri tahu saya di komentar.
Instal Referensi:
2. Perbarui: Anda juga bisa menggunakan
iostat
:Jalankan pada interval 1 detik dengan:
ATAU dengan interval 0,1 detik dengan:
Output sampel dari
iostat -d 1
:Referensi:
/ubuntu/3561/how-do-i-monitor-disk-activity-on-a-specific-drive
Bacaan tambahan:
https://www.znetlive.com/blog/monitor-disk-io-windows-linux/
Terkait:
sumber
Saya telah menulis sepasang skrip shell untuk mendapatkan throughput dari perangkat USB. Jika seseorang ingin menggunakannya, Anda dapat menemukannya di pos ini .
sumber
usbmon
yang perlu diinstal / dikompilasi (?) Secara manual.Menggunakan
htop
, aku menekanF2
untukSetup
, kolom yang dipilih, menambahkanIO_READ_RATE
,IO_WRITE_RATE
atauIO_RATE
, dan saya bisa melihat kecepatan di mana proses sedang membaca atau menulis dari dan ke disk.sumber