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. 推荐测试方式

  1. 创建文件:文件均由 dd 命令创建 300 MB 大小、.txt格式的文件

    dd if=/dev/zero of=test.txt bs=300M count=1
    
  2. 记录数据写入(控制柜 -> 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 盘的时间。

  1. 开发提供测试脚本

    1. 第 7 行,u_disks的值需要根据实际情况修改,可通过 fdisk -l 查看当前插入 U 盘挂载点

      image-20240606151114902

    2. 第 8 行,控制柜 USB 接口版本请根据实际情况填写

    3. 将脚本拷入控制柜任一路径下,chmod +x udisk_test.sh 添加可执行权限,./udisk_test.sh 执行

    4. 执行完脚本将生成 results_*.txttest.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 准备阶段

  1. 确保 U 盘已正确连接至控制柜,关闭所有占用 U 盘资源的程序。
  2. 确保控制柜系统在测试前 CPU、内存占用率正常,关闭所有占用率较高的程序。
  3. 提前准备好测试结果表格及相关硬件设备

  4. 第一次测试

控制柜(类型 + 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 接口
...
  1. 控制变量法:测试上述不同设备 U 盘写入速度时,要确保拷贝的文件大小一致。

4.2 运行测试,记录结果

  1. 先将测试脚本拷入控制柜
  2. 插入要测试的 U 盘
  3. 使用测试脚本进行测试(参考 3. 推荐测试方式 - 3 开发提供测试脚本
  4. 等待命令结束,并记录测试结果(脚本生成的文件)
  5. 使用其他不同的控制柜、U 盘,重复 1~4 步,直到全部情况测试结束。

5. 解读测试结果

  1. 写入速度:衡量向 U 盘写入数据的速度,影响下载日志的快慢。
  2. 数据完整性:通过本测试确保数据在传输过程中未被破坏。
  3. 容量检测:确认 U 盘单次大文件拷贝大小满足日志下载功能需求。
  4. 客户建议:根据测试报告数据,为客户给出 U 盘选择建议。
    • cp 指令慢的 U 盘,下载日志是不是也慢。快的也快,cp指令的结果与下载日志快慢问题是否相关。
    • 第一点确认的前提下,是不是 NTFS 的慢,或者 USB 2.0 的慢,推荐用户不要用这类 U 盘。

6. 注意事项

  • 多次测试取平均值可提高结果的可靠性

7. 结语

通过上述步骤和推荐测试方式,您可以有效地评估 U 盘的写入性能,为客户使用 U 盘下载日志提供科学依据。记得定期进行性能测试,确保下载日志功能始终保持最佳工作状态,保障数据传输的高效与安全。

8. 附录

测试用例的详情信息和执行情况可通过点击以下链接访问:

U盘写入性能测试数据及数据分析

日志文件存档

  • 通过对Sheet1的测试数据以及Sheet2中部分测试项进行分析,得出以下结论:不同控制柜类型、插口类型、U盘品牌(U盘接口版本)以及写入文件大小对U盘写入速度的影响极小,均在允许的工作范围内;唯有U盘文件系统(exFAT、FAT32、NTFS)对U盘写入性能影响较大。建议在选择U盘时优先使用 exFAT 文件系统。 在上述基础上进一步分析Sheet2中的附加测试项,发现U盘不同文件系统类型是导致ARCS日志文件下载速度慢的原因之一。因此,在导出ARCS日志时,推荐使用 exFAT 文件系统。

results matching ""

    No results matching ""