Monitor kinerja / lalu lintas USB?

18

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.

Tuan Shickadance
sumber
1
Sementara wireshark dan usbmon mendapatkan traffic, saya butuh sesuatu yang bisa lebih mudah memberi saya ide throughput dan semacamnya.
Tn. Shickadance
Apakah Anda melihat bus usb mencapai maksimum teoretisnya? Apakah Anda membandingkan lalu lintas yang Anda dapatkan dengan tolok ukur perangkat keras Anda? Throughput maks biasanya tergantung pada perangkat yang terhubung dan bukan pada bus sistem, jadi untuk mengujinya dengan benar Anda akan memerlukan beberapa perangkat keras yang khusus dibuat untuk tujuan itu.
forcefsck

Jawaban:

4

Karena usbmon memberikan panjang setiap paket yang ditransfer, saya akan mendekati ini dengan menulis program cepat untuk mem-parsing 0ufile (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.

Malvine
sumber
3
Saya berharap alat yang sudah ada sebelumnya, tapi saya kira ini sudah cukup.
Tn. Shickadance
10

Gunakan usbtop , ini memberikan gambaran yang bagus tentang perangkat apa yang menggunakan berapa banyak bandwidth:

Bus ID 1 (USB bus number 1) To device   From device
  Device ID 1 :             0.00 kb/s   0.00 kb/s
  Device ID 2 :             0.00 kb/s   0.00 kb/s
Bus ID 2 (USB bus number 2) To device   From device
  Device ID 1 :             0.00 kb/s   0.00 kb/s
  Device ID 4 :             141.73 kb/s 13777.68 kb/s
  Device ID 5 :             9.98 kb/s   11.24 kb/s
  Device ID 6 :             0.00 kb/s   0.00 kb/s
  Device ID 7 :             0.00 kb/s   0.00 kb/s
  Device ID 8 :             141.71 kb/s 15257.26 kb/s
sebas
sumber
2
Terima kasih telah menunjuk saya usbtop. Itu terlihat bermanfaat. Berikut ini cara menginstalnya: unix.stackexchange.com/a/489268/114401 .
Gabriel Staples
1
Pada Ubuntu 19.04 ia berada dalam repositori resmi, yaitu sederhana apt install usbtop.
luator
4

1. usbtop:

Seperti yang ditunjukkan sebas , usbtop tampaknya memberikan tingkat minimum informasi bermanfaat tertentu (walaupun itu bisa jauh lebih baik), jadi saya merekomendasikannya.

masukkan deskripsi gambar di sini

Berikut cara menginstalnya:

  1. Klon git repo:

    git clone https://github.com/aguinet/usbtop.git 
    
  2. Arahkan ke direktori yang baru saja dibuat dari git clone:

    cd usbtop
    
  3. Instal dependensi:

    sudo apt update 
    sudo apt install libboost-dev libpcap-dev libboost-thread-dev libboost-system-dev 
    
  4. Buat direktori bangunan lokal & cd ke dalamnya:

    mkdir _build && cd _build 
    
  5. Jalankan cmake untuk bersiap membangun usbtop dari sumber:

    cmake -DCMAKE_BUILD_TYPE=Release .. 
    
  6. Bangun usbtop dari sumber:

    make 
    
  7. Pasang usbtop:

    sudo make install 
    
  8. Muat modul kernel usbmon untuk membuka akses ke bus USB (saya pikir inilah fungsinya, tapi saya tahu itu wajib):

    sudo modprobe usbmon 
    
  9. Jalankan usbtop (jika ini tidak berhasil, gunakan sudo usbtopsaja):

    usbtop 
    

Jika saya melewatkan sesuatu, beri tahu saya di komentar.

Instal Referensi:

2. Perbarui: Anda juga bisa menggunakan iostat:

sudo apt install sysstat

Jalankan pada interval 1 detik dengan:

iostat -d 1

ATAU dengan interval 0,1 detik dengan:

watch -n 0.1 iostat

Output sampel dari iostat -d 1:

masukkan deskripsi gambar di sini

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:

Gabriel Staples
sumber
0

Menggunakan htop, aku menekan F2untuk Setup, kolom yang dipilih, menambahkan IO_READ_RATE, IO_WRITE_RATEatau IO_RATE, dan saya bisa melihat kecepatan di mana proses sedang membaca atau menulis dari dan ke disk.

nyxee
sumber
Pertanyaan ini adalah tentang lalu lintas USB, bukan lalu lintas disk (misalnya berapa banyak bandwidth yang digunakan webcam USB.)
Malvineous