web-dev-qa-db-ja.com

USBパフォーマンス/トラフィックモニター?

まず第一に、私は similar 質問を見つけましたが、それは私の問題を本当に解決しません。使用しているデバイスのUSBバスがプログラムのボトルネックであるかどうかを確認しようとしています。

USBのバスを監視して(gnome-system-monitorの動作と同様)、バスの使用率を表示するにはどうすればよいですか?基本的に私はバスがいつ「満杯」になっているのかを特定したいと思います。私が探しているのは、私が必要としているように見えるusbmonのインターフェースだと思います。

これはUSRPとGNUラジオをテストしたことから来ました。USBバスが制限要因であると思われる状況に遭遇しているので、USBパフォーマンスモニタリングのより一般的な質問をします。

18
Mr. Shickadance

sbmon は転送される各パケットの長さを提供するため、0uファイル(すべてのUSBデバイスのデータが含まれています)を解析する簡単なプログラムを作成することで、これにアプローチします。 USBバスとデバイス番号。次に、各デバイスの両方向のパケット長フィールドの現在の合計を保持します。

これにより、デバイスごとに、各方向に転送されるデータ量がわかります。 1秒に1回印刷すると、各デバイスのスループットがかなりわかります。 USBオーバーヘッドは含まれませんが、使用可能な帯域幅を飽和させることができるデバイスと数値を比較すると、制限に近づいているかどうかがわかります。

4
Malvineous

sbtop を使用すると、どのデバイスがどのくらいの帯域幅を使用しているかの概要がわかります。

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
10
sebas

1. usbtop:

sebasが指摘する と同様に、 usbtop は、特定の最小レベルの有用な情報を提供するようです(ただし、それははるかに良いかもしれません)、それで私はそれをお勧めします。

enter image description here

インストール方法は次のとおりです。

  1. Gitリポジトリのクローンを作成します。

    git clone https://github.com/aguinet/usbtop.git 
    
  2. git cloneから作成したディレクトリに移動します。

    cd usbtop
    
  3. 依存関係をインストールします。

    Sudo apt update 
    Sudo apt install libboost-dev libpcap-dev libboost-thread-dev libboost-system-dev 
    
  4. ローカルビルドディレクトリを作成し、そこにcdします。

    mkdir _build && cd _build 
    
  5. Cmakeを実行して、ソースからusbtopをビルドする準備をします。

    cmake -DCMAKE_BUILD_TYPE=Release .. 
    
  6. ソースからusbtopをビルドします。

    make 
    
  7. Usbtopをインストールします。

    Sudo make install 
    
  8. Usbmonカーネルモジュールをロードして、USBバスへのアクセスを開きます(これは実際にそうなっていると思いますが、必要であることはわかっています)。

    Sudo modprobe usbmon 
    
  9. Usbtopを実行します(これが機能しない場合は、代わりにSudo usbtopを使用してください)。

    usbtop 
    

何かを見逃した場合は、コメントでお知らせください。

参照のインストール:

2.更新:代わりにiostatを使用することもできます。

Sudo apt install sysstat

1秒間隔で実行:

iostat -d 1

または、0.1秒間隔で:

watch -n 0.1 iostat

iostat -d 1の出力例:

enter image description here

参照:

https://askubuntu.com/questions/3561/how-do-i-monitor-disk-activity-on-a-specific-drive

追加の読み:

https://www.znetlive.com/blog/monitor-disk-io-windows-linux/

関連:

4
Gabriel Staples

USBデバイスからスループットを取得するために、シェルスクリプトのペアを作成しました。誰かがそれを何を使うべきかは、この post で見つけることができます。

2
Pipe

htopを使用してF2 for Setup、選択された列、追加されたIO_READ_RATEIO_WRITE_RATEまたはIO_RATE、そして私はプロセスがディスクを読み書きする速度を見ることができました。

0
nyxee