USB 总线速率测试
测试原理
USB 速率测试的基本原理是通过测量 USB 设备与主机之间的数据传输速率,计算数据传输时间,以此来测量实际的总线速率。
测试内容
USB 总线速率测试分别使用了 USB 虚拟网口和 dd 命令对 U 盘进行读写操作,这两种测试方法用于评估 USB 2.0 和 USB 3.0 的传输速率。
dd 命令原理说明
使用 dd 命令测试 USB 总线速率的原理涉及到 磁盘 I/O 性能测试,虽然它并不直接测量 USB 总线本身的速度,但通过测试与 USB 设备进行数据读写时的吞吐量,可以间接推测出 USB 总线的性能瓶颈。
dd if=/dev/zero of=/mnt/usb/testfile bs=1M count=1024 conv=sync oflag=direct
if=/dev/zero:输入文件是 /dev/zero,它会生成连续的零数据。of=/mnt/usb/testfile:输出文件为 USB 存储设备的挂载点下的 testfile,即将数据写入 U 盘。bs=1M:块大小为 1MB。每次操作读取或写入 1MB 数据。count=1024:共写入 1024 个块,即 1GB 的数据。conv=sync:这个参数用于处理块对齐。如果输入的数据块大小不足 bs(在此示例中是 4KB), conv=sync 会将缺少的部分用零填充,以确保每个块的大小都是 4KB。oflag=direct:避免缓存的影响,直接写入 U 盘。
dd if=/path/to/source_file of=/dev/null bs=4K iflag=direct
if=/path/to/source_file: if( 输入文件 ) 指定输入文件的路径,/path/to/source_file 是要从中读取数据的文件。of=/dev/null: of(输出文件):指定输出文件的位置,这里将数据写入 /dev/null。bs=4K: bs(块大小):设置每次读取和写入的数据块大小为 4KB( 4096 字节)。iflag=direct: direct 标志确保数据直接从 U 盘读取,而不经过操作系统的缓存。
通过执行 dd 读写命令,系统会把零数据写入到 U 盘,测试写入过程中的吞吐量。命令执行后,系统会显示写入的字节数和所需时间,从而计算出写入速度, dd 读命令同理。
usb 虚拟网口原理说明
设置 USB 口工作在 device 模式,使能 rndis 驱动,连接到个人电脑后,会在电脑上生成一个远程网卡。配置好板端和电脑上的网络 IP 地址后,使用 iperf3 工具进行速率带宽的测试。