USB 性能/流量监视器?

USB 性能/流量监视器?

首先,我找到了一个相似的问题,但并不能真正解决我的问题。我试图发现我正在使用的设备的 USB 总线是否是我的程序的瓶颈。

如何监控 USB 总线(类似于 gnome-system-monitor 的工作原理)以显示总线利用率?基本上我想确定总线何时“最大化”。我想我正在寻找的是 usbmon 的一些接口,因为它看起来可以满足我的需要。

这是在测试 USRP 和 GNU Radio 时产生的。我遇到一种情况,USB 总线似乎是一个限制因素,所以我问了一个更普遍的问题,即 USB 性能监控。

答案1

使用优盘,它很好地概述了哪些设备正在使用多少带宽:

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接口:

作为塞巴斯指出,优盘似乎提供了一定程度的最低限度的有用信息(尽管它可能会更好),所以我推荐它。

在此输入图像描述

安装方法如下(usbtop从源代码构建):

  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 \
        cmake \
        build-essential
    
  4. 创建本地构建目录并进入其中:
    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

在此输入图像描述

参考:

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 总线和设备编号,然后保留数据包的运行总数每个设备的两个方向的长度字段。

然后,这将为您提供每个设备在每个方向上传输的数据量。如果您每秒打印一次,您就会很好地了解每个设备的吞吐量。请注意,它不包括任何 USB 开销,但如果您将这些数字与能够使可用带宽饱和的设备进行比较,您就会知道是否已接近限制。

答案4

使用htop,我按F2Setup选择列,添加IO_READ_RATEIO_WRITE_RATEIO_RATE,我能够看到进程从磁盘读取或写入的速度。

相关内容