如何在Linux上查找USB设备带宽使用情况

时间:2020-03-21 11:44:29  来源:igfitidea点击:

前几天,我想检查将文件从本地硬盘驱动器传输到外部驱动器时,外部U盘正在使用多少带宽。
在寻找一种简便方法的同时,我遇到了一个名为“ Usbtop”的命令行实用程序。
Usbtop是一种类似Top的CLI实用程序,可帮助我们查找Linux上USB设备带宽的使用情况。
它显示了USB总线和设备上的估计瞬时带宽。
使用此工具,我们可以轻松地检查哪些设备正在使用多少带宽。

安装Usbtop

Usbtop在AUR中可用,因此我们可以使用任何AUR帮助器(例如Yay)将其安装在Arch linux及其变体上。

$yay -S usbtop

在Debian上,它在默认存储库中可用。
运行以下命令进行安装:

$sudo apt install usbtop

在Ubuntu及其衍生产品上,我们需要从下面的源代码进行编译和安装。

安装所需的依赖项:

$sudo apt update
$sudo apt install cmake git libboost-dev libpcap-dev libboost-thread-dev libboost-system-dev

在本地系统上的Git克隆Usbtop存储库:

$git clone https://github.com/aguinet/usbtop.git

上面的命令将在当前工作目录的“ usbtop”目录中克隆Usbtop存储库的所有内容。
将CD放入usbtop目录:

$cd usbtop

接下来创建本地构建目录并cd进入该目录:

$mkdir _build && cd _build

最后,通过逐个运行以下命令来安装Usbtop:

$cmake -DCMAKE_BUILD_TYPE=Release ..
$make
$sudo make install

安装后,请确保已加载usbmon模块。

$sudo modprobe usbmon

使用Usbtop查找Linux上USB设备带宽的使用情况

连接U盘并其中复制一些文件。
打开终端并使用sudo特权运行usbtop命令以估计带宽使用情况。

$sudo usbtop

输出示例:

从上面的输出中可以看到,Usbtop显示USB总线和设备上的带宽使用情况。
在顶部,我们将看到所有USB总线上的整体带宽使用情况,在其下方,我们将看到每条总线上的带宽。

要列出所有可用的USB总线,请运行:

$usbtop --list
Name Description
--------------------------
usbmon1 USB bus number 1
usbmon2 USB bus number 2
usbmon3 USB bus number 3
usbmon4 USB bus number 4

要监视特定USB总线上的带宽流量,请运行:

$sudo usbtop --bus usbmon1

此命令将仅监视usbmon1总线上的带宽流量。

有关详细信息,请参阅帮助部分。

$usbtop --help

我已经通过USB外置驱动器和拇指驱动器进行了测试。
但是,我们可以将其用于USB网络摄像头,打印机等所有设备,以监视带宽。