U 盘写入性能测试指南
1. 概述
U 盘写入性能测试是指评估 U 盘在写入数据时的速度与效率的过程。这一测试对于确保数据传输的高效性、验证 U 盘的真实性能以及检测可能存在的质量问题至关重要。本文档将指导您如何进行 U 盘的写入性能测试,包括推荐的测试方式、测试步骤以及如何解读测试结果。
2. 为何进行U盘性能测试
- 评估数据传输效率:了解 U 盘和控制器处理大文件的能力。
- 验证拷贝日志慢的原因:比较不同控制柜(新C、改进型 等)、不同 U 盘类型(USB 2.0、USB 3.0、USB 3.1 等)和不同的文件系统(FAT32、NTFS、exFAT 等)写入 U 盘数据的速度。
3. 推荐测试方式
创建文件:文件均由
dd
命令创建 300 MB 大小、.txt格式的文件dd if=/dev/zero of=test.txt bs=300M count=1
记录数据写入(控制柜 -> U盘)时间:使用 cp 命令模拟数据写入的过程,time 命令打印文件写入时间
time cp src_filepath dest_filepath
src_filepath
指原文件路径,dest_filepath
指要拷贝到的文件路径。cp 是 Linux 系统命令,将原文件拷贝到指定路径。
time 是 Linux 系统命令,可以在命令前使用它来测量命令的执行时间。
如:
time cp /tmp/arcs_report_xxx.zip /media/root/Udisk/
, 可将日志包拷贝到 U 盘,并测量数据从控制柜系统写入到 U 盘的时间。
开发提供测试脚本
第 7 行,
u_disks
的值需要根据实际情况修改,可通过fdisk -l
查看当前插入 U 盘挂载点第 8 行,控制柜 USB 接口版本请根据实际情况填写
将脚本拷入控制柜任一路径下,
chmod +x udisk_test.sh
添加可执行权限,./udisk_test.sh
执行执行完脚本将生成
results_*.txt
和test.log
文件,将文件存档,并分析文件内容填写表格
#!/bin/bash # 定义变量 source_file="test.txt" sizes=(100M 500M 1G) repeat_times=3 u_disks=("/dev/sdb1") # 示例U盘挂载点,根据实际情况修改 interface_list=("USB_3.1_port") # 控制柜USB接口标识,仅作示例 # 创建测试文件函数 create_test_file() { local size=$1 echo "sudo dd if=/dev/zero of=$source_file bs=$size count=1" | tee -a test.log sudo dd if=/dev/zero of=$source_file bs=$size count=1 >> test.log 2>&1 } # 测试写入时间函数 test_write_time() { local dest_disk=$1 local file_size=$2 local interface=$3 local test_round=$4 # 记录开始测试的时间 start_time=$(date +"%Y-%m-%d %H:%M:%S") echo "Test Start Time: $start_time" 2>&1 | tee -a results_$interface-$file_size.txt | tee -a test.log > /dev/null echo "Testing write to $dest_disk with $file_size on $interface, round $test_round..." | tee -a test.log for ((i=1; i<=$test_round; i++)); do echo -n "Round $i: " 2>&1 | tee -a results_$interface-$file_size.txt | tee -a test.log > /dev/null { time (sudo cp "$source_file" "$dest_disk"); } 2>&1 | tee -a results_$interface-$file_size.txt | tee -a test.log > /dev/null echo "" 2>&1 | tee -a results_$interface-$file_size.txt | tee -a test.log > /dev/null # 确保每轮测试结果后换行 done } # 主循环执行测试 for interface in "${interface_list[@]}"; do for size in "${sizes[@]}"; do create_test_file $size for u_disk in "${u_disks[@]}"; do test_write_time "$u_disk" "$size" "$interface" $repeat_times # 如果需要更多轮次,调整这里的循环逻辑 done done done echo "Tests completed. Results are in results_*.txt files."
4. 测试步骤
4.1 准备阶段
- 确保 U 盘已正确连接至控制柜,关闭所有占用 U 盘资源的程序。
- 确保控制柜系统在测试前 CPU、内存占用率正常,关闭所有占用率较高的程序。
提前准备好测试结果表格及相关硬件设备
第一次测试
控制柜(类型 + USB 版本) \ U 盘(版本 + 系统) | xx 品牌 + USB 2.0 + FAT32 | xx 品牌 + USB 2.0 + exFAT | xx 品牌 + USB 2.0 + NTFS | xx 品牌 + USB 3.0 + FAT32 | xx 品牌 + USB 3.1 + FAT32 | ... |
---|---|---|---|---|---|---|
改进型控制柜 + USB 2.0 接口 | ||||||
新 C 控制柜 + USB 2.0 接口 | ||||||
iS 控制柜 + USB 2.0 接口 | ||||||
IS 控制柜 + USB 3.0 接口 | ||||||
iS 示教器 + USB 接口 | ||||||
... |
- 第二次测试
控制柜(类型 + USB 版本) \ U 盘(版本 + 系统) | xx 品牌 + USB 2.0 + FAT32 | xx 品牌 + USB 2.0 + exFAT | xx 品牌 + USB 2.0 + NTFS | xx 品牌 + USB 3.0 + FAT32 | xx 品牌 + USB 3.1 + FAT32 | ... |
---|---|---|---|---|---|---|
改进型控制柜 + USB 2.0 接口 | ||||||
新 C 控制柜 + USB 2.0 接口 | ||||||
iS 控制柜 + USB 2.0 接口 | ||||||
IS 控制柜 + USB 3.0 接口 | ||||||
iS 示教器 + USB 接口 | ||||||
... |
- 第三次测试
控制柜(类型 + USB 版本) \ U 盘(版本 + 系统) | xx 品牌 + USB 2.0 + FAT32 | xx 品牌 + USB 2.0 + exFAT | xx 品牌 + USB 2.0 + NTFS | xx 品牌 + USB 3.0 + FAT32 | xx 品牌 + USB 3.1 + FAT32 | ... |
---|---|---|---|---|---|---|
改进型控制柜 + USB 2.0 接口 | ||||||
新 C 控制柜 + USB 2.0 接口 | ||||||
iS 控制柜 + USB 2.0 接口 | ||||||
IS 控制柜 + USB 3.0 接口 | ||||||
iS 示教器 + USB 接口 | ||||||
... |
- 平均值
控制柜(类型 + USB 版本) \ U 盘(版本 + 系统) | xx 品牌 + USB 2.0 + FAT32 | xx 品牌 + USB 2.0 + exFAT | xx 品牌 + USB 2.0 + NTFS | xx 品牌 + USB 3.0 + FAT32 | xx 品牌 + USB 3.1 + FAT32 | ... |
---|---|---|---|---|---|---|
改进型控制柜 + USB 2.0 接口 | ||||||
新 C 控制柜 + USB 2.0 接口 | ||||||
iS 控制柜 + USB 2.0 接口 | ||||||
IS 控制柜 + USB 3.0 接口 | ||||||
iS 示教器 + USB 接口 | ||||||
... |
- 控制变量法:测试上述不同设备 U 盘写入速度时,要确保拷贝的文件大小一致。
4.2 运行测试,记录结果
- 先将测试脚本拷入控制柜
- 插入要测试的 U 盘
- 使用测试脚本进行测试(参考 3. 推荐测试方式 - 3 开发提供测试脚本 )
- 等待命令结束,并记录测试结果(脚本生成的文件)
- 使用其他不同的控制柜、U 盘,重复 1~4 步,直到全部情况测试结束。
5. 解读测试结果
- 写入速度:衡量向 U 盘写入数据的速度,影响下载日志的快慢。
- 数据完整性:通过本测试确保数据在传输过程中未被破坏。
- 容量检测:确认 U 盘单次大文件拷贝大小满足日志下载功能需求。
- 客户建议:根据测试报告数据,为客户给出 U 盘选择建议。
- cp 指令慢的 U 盘,下载日志是不是也慢。快的也快,cp指令的结果与下载日志快慢问题是否相关。
- 第一点确认的前提下,是不是 NTFS 的慢,或者 USB 2.0 的慢,推荐用户不要用这类 U 盘。
6. 注意事项
- 多次测试取平均值可提高结果的可靠性
7. 结语
通过上述步骤和推荐测试方式,您可以有效地评估 U 盘的写入性能,为客户使用 U 盘下载日志提供科学依据。记得定期进行性能测试,确保下载日志功能始终保持最佳工作状态,保障数据传输的高效与安全。
8. 附录
测试用例的详情信息和执行情况可通过点击以下链接访问:
- 通过对Sheet1的测试数据以及Sheet2中部分测试项进行分析,得出以下结论:不同控制柜类型、插口类型、U盘品牌(U盘接口版本)以及写入文件大小对U盘写入速度的影响极小,均在允许的工作范围内;唯有U盘文件系统(exFAT、FAT32、NTFS)对U盘写入性能影响较大。建议在选择U盘时优先使用 exFAT 文件系统。
在上述基础上进一步分析Sheet2中的附加测试项,发现U盘不同文件系统类型是导致
ARCS日志文件下载速度慢
的原因之一。因此,在导出ARCS日志时,推荐使用 exFAT 文件系统。