Linux上的USB驱动器基准测试

发布时间 2023-09-28 17:05:38作者: 磁石空杯

基准测试

如果你想在U盘或其他外置USB硬盘上执行基准测试,程序与在普通内部存储设备上执行基准测试非常相似。我们需要做的就是测量USB硬盘的读写速度。在本教程中,你将看到如何在 Linux 系统上通过命令行和图形用户界面对USB硬盘进行基准测试。

在本教程中,你将学习

  • 如何在主要Linux发行版上安装hdparm和Bonnie++
  • 如何安装GNOME磁盘工具
  • 如何使用 dparm、Bonnie++ 和GNOME disk执行基准测试

Linux 上的 USB 驱动器基准测试分步说明

我们有几种不同的方法可用于在 Linux 上对 USB 驱动器进行基准测试。其中包括 hdparm 和 Bonnie++ 实用程序(均为命令行工具),以及 GNOME 磁盘实用程序(当然是图形用户界面应用程序)。你可以选择自己喜欢的方法,并按照以下步骤操作。

使用dd测试写速度

$ sync;dd if=/dev/zero of=tmp bs=1M count=1024;sync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 139.504 s, 7.7 MB/s

使用hdparm进行 USB 基准测试

hdparm 是方便的命令行工具,通常默认安装在大多数Linux系统中。使用它进行测试的唯一问题是,它不能测量写入速度,只能测量读取速度。如果你只关心读取速度,那么请放心使用该工具。

如果还没有安装 hdparm,请先安装:

  • Ubuntu、Debian 和 Linux Mint:
$ sudo apt install hdparm

Red Hat、Fedora、CentOS 和 AlmaLinux:

$ sudo dnf install hdparm

Arch Linux 和 Manjaro:

$ sudo pacman -S hdparm

接下来,我们将使用-t标志执行测试,并使用--direct选项绕过hdparm命令的系统缓存。您还必须指定USB存储设备的块路径:


$ sudo hdparm -t --direct /dev/sda1

/dev/sda1:
Timing O_DIRECT disk reads: 258 MB in 3.02 seconds = 85.55 MB/sec

hdparm 中的结果显示,我们的USB硬盘的读取速度为 85.55 MB/sec

使用Bonnie++进行USB基准测试

Bonnie++将执行全面测试,以确定USB存储设备的读写速度。这将为您提供非常准确的结果,但与hdparm相比,执行测试所需的时间要长得多。

如果你还没有安装 hdparm,请先安装它:

  • Ubuntu、Debian 和 Linux Mint:
$ sudo apt install bonnie++

  • Red Hat、Fedora、CentOS 和 AlmaLinux:
$ sudo dnf install bonnie++

  • Arch Linux 和 Manjaro
$ sudo pacman -S bonnie++

使用-d选项指示 Bonnie++在何处进行读写测试。这应该指向USB驱动器上的某个目录。

$ sudo pacman -S bonnie++

使用GNOME Disk进行USB基准测试

最后一种方法适用于希望使用图形用户界面进行基准测试的用户。GNOME自带的Disks实用程序可让用户轻松访问强大的基准功能。如果您尚未将 GNOME 作为桌面环境,仍可按照以下步骤安装必要的实用程序。

如果你还没有安装 GNOME Disks,那就从安装它开始吧:

  • Ubuntu、Debian 和 Linux Mint:
$ sudo apt install gnome-disk-utility

  • Red Hat、Fedora、CentOS 和 AlmaLinux:
$ sudo dnf install gnome-disk-utility

  • Arch Linux 和 Manjaro:
$ sudo pacman -S gnome-disk-utility

下一步是打开 GNOME Disks 应用程序:

参考资料

lsusb

lsusb命令是Linux中的一个实用程序,允许用户列出连接到系统的USB(通用串行总线)设备。该实用程序是usbutils软件包的一部分,该软件包提供了显示系统中USB总线及其连接设备信息的实用程序。

USB (通用串行总线)是一种广泛使用的将设备连接到电脑的标准。它允许用户将键盘、鼠标、打印机和外部存储设备等多种设备轻松连接到电脑上。lsusb 命令可用于显示这些设备的相关信息,包括供应商和产品 ID、设备名称、设备驱动程序等。

语法

lsusb 命令的基本语法是

lsusb [options]

选项

lsusb 命令的一些常用选项如下

  • -v: 显示 USB 设备的详细信息。
  • -t: 显示 USB 设备的树形视图。
  • -s: 显示特定 USB 设备的信息,由其总线和设备编号指定。
  • -d:显示特定 USB 设备的信息,由其供应商和产品 ID 指定。
  • -D:选择要检查的设备。

示例

要列出连接到系统的所有 USB 设备,请使用 lsusb 命令,不带任何选项:

$ lsusb
Bus 002 Device 003: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 05c8:03ef Cheng Uei Precision Industry Co., Ltd (Foxlink) HP True Vision HD Camera
Bus 001 Device 005: ID 0bda:385a Realtek Semiconductor Corp. Bluetooth Radio
Bus 001 Device 002: ID 28a0:1185  USB OPTICAL MOUSE 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

要显示USB设备的详细信息,请使用-v选项;要显示USB设备的树状视图,请使用-t选项;要显示特定USB设备的信息,请使用-s选项,后面跟总线和设备编号。例如,要显示总线4和设备2上USB设备的信息,请使用以下命令:

$ lsusb -s 4:2 -v 

要显示特定USB设备的信息,请使用-d选项,后面跟上供应商和产品ID。例如,要显示供应商ID为 8087、产品ID为c52b 的设备信息,请使用以下命令:

lsusb -d 1d6b:0002 -v 

查看USB设备版本:

# lsusb -vvv |grep -i -B5 -A5 bcdUSB
can't get debug descriptor: Resource temporarily unavailable

Bus 004 Device 002: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Device Descriptor:
  bLength                18
  bDescriptorType         1
can't get debug descriptor: Resource temporarily unavailable
  bcdUSB               3.20
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         9
  idVendor           0x0951 Kingston Technology
--
...

上面Kingston U盘的USB版本为3.20