首先,我发现了一个类似的问题,但这并不能真正解决我的问题。我试图发现我正在使用的设备的USB总线是否是程序中的瓶颈。
如何监视USB总线(类似于gnome-system-monitor的工作方式)以显示总线利用率?基本上,我想确定总线何时被“最大化”。我想我正在寻找的是usbmon的一些界面,因为它看起来像我需要的。
这来自于测试USRP和GNU Radio。我遇到的情况似乎是USB总线可能是一个限制因素,所以我问一个更通用的USB性能监控问题。
首先,我发现了一个类似的问题,但这并不能真正解决我的问题。我试图发现我正在使用的设备的USB总线是否是程序中的瓶颈。
如何监视USB总线(类似于gnome-system-monitor的工作方式)以显示总线利用率?基本上,我想确定总线何时被“最大化”。我想我正在寻找的是usbmon的一些界面,因为它看起来像我需要的。
这来自于测试USRP和GNU Radio。我遇到的情况似乎是USB总线可能是一个限制因素,所以我问一个更通用的USB性能监控问题。
Answers:
由于usbmon提供了传输的每个数据包的长度,因此我将通过编写一个快速程序来分析0u
文件(其中包含所有USB设备的数据)来解决此问题。它将选择USB总线和设备号,然后保持运行总数每个设备的双向数据包长度字段。
然后,您将获得每个设备在每个方向上传输的数据量。如果每秒打印一次,您将对每个设备的吞吐量有一个很好的了解。请注意,它不会包含任何USB开销,但是如果将这些数字与能够饱和可用带宽的设备进行比较,您会知道您是否已接近极限。
使用usbtop,它可以很好地概述哪些设备正在使用多少带宽:
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
usbtop
。它看起来很有用。安装方法如下:unix.stackexchange.com/a/489268/114401。
apt install usbtop
。
正如sebas指出的那样,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
创建本地构建目录并进入cd:
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
如果我错过了任何事情,请在评论中告诉我。
iostat
:sudo apt install sysstat
以1秒的间隔运行:
iostat -d 1
或以0.1秒的时间间隔使用:
watch -n 0.1 iostat
样本输出iostat -d 1
:
/ubuntu/3561/how-do-i-monitor-disk-activity-on-a-specific-drive
https://www.znetlive.com/blog/monitor-disk-io-windows-linux/
使用htop
,我压F2
为Setup
,选择的列,加入IO_READ_RATE
,IO_WRITE_RATE
或IO_RATE
,我能够看到在该过程被读取或从和向磁盘写入的速度。