まず、私は似たような質問がありますが、実際に私の問題は解決されません。私が使用しているデバイスのUSBバスが私のプログラムにボトルネックを引き起こすかどうかを調べようとしています。
バス使用率を表示するためにUSBバス(gnome-system-monitorの仕組みに似ている)を監視するにはどうすればよいですか?基本的にバスが「最大化」する時期を決めたいです。私が探しているのはusbmonへのインターフェースだと思います。なぜなら、これは私のニーズに適しているようです。
この問題は、USRP と GNU Radio のテスト中に発生しました。 USBバスが制限要因のような状況にぶつかり、USBパフォーマンスモニタリングについてもっと一般的な質問をしました。
答え1
使用USBフラッシュドライブ、どのデバイスがどのくらいの帯域幅を使用しているかについての良い概要を提供します。
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
答え2
1.USBインターフェース:
〜のようにセバスチャンが指摘した。、USBフラッシュドライブ(もっと良いかもしれませんが)最小限の有用な情報を提供しているようで、お勧めします。
インストール方法は次のとおりです(usbtop
ソースからビルド)。
- Gitリポジトリを複製します。
git clone https://github.com/aguinet/usbtop.git
- 作成したディレクトリに移動します
git clone
。cd usbtop
- 依存関係をインストールします。
sudo apt update sudo apt install \ libboost-dev \ libpcap-dev \ libboost-thread-dev \ libboost-system-dev \ cmake \ build-essential
- ローカルビルドディレクトリを作成して入力します。
mkdir _build && cd _build
- cmakeを実行して、ソースからビルドするusbtopを準備します。
cmake -DCMAKE_BUILD_TYPE=Release ..
- ソースから usbtop をビルドします。
make
- USBtopをインストールします。
sudo make install
- usbmonカーネルモジュールをロードしてUSBバスへのアクセスを開きます(とは思いますが必須であることを知っています)。
sudo modprobe usbmon
- usbtopを実行します(機能しない場合は代わりに使用してください
sudo usbtop
)。usbtop
見逃した部分があればコメントで教えてください。
インストールリファレンス:
- https://github.com/aguinet/usbtop/blob/master/INSTALL
- https://github.com/aguinet/usbtop/issues/3#issuecomment-274325720
2. アップデート: 以下を使用することもできますiostat
。
sudo apt install sysstat
1秒間隔で実行:
iostat -d 1
または0.1秒間隔で:
watch -n 0.1 iostat
出力例iostat -d 1
:
引用:
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/
関連:
答え3
~からusbmon送信された各パケットの長さを考慮して、0u
すべてのUSBデバイスのデータを含むファイルを解析するクイックプログラムを作成することで、この問題を解決しました。 USBバスとデバイス番号を選択し、両方向の各デバイスのパケット長フィールドの累積合計を維持します。
これにより、各デバイスが各方向に転送するデータ量が提供されます。毎秒1回印刷すると、各デバイスのスループットがよくわかります。 USBオーバーヘッドは含まれていませんが、この数値を使用可能な帯域幅を飽和させることができるデバイスと比較すると、限界に近づいているかどうかがわかります。
答え4
を使用して、列の選択、追加、またはを押すと、htop
プロセスがディスクから読み書きする速度を確認できます。F2
Setup
IO_READ_RATE
IO_WRITE_RATE
IO_RATE