[Linux]time+dd测试硬盘/手机/SD卡读写速度

本文介绍了如何利用Linux的time和dd命令来测试硬盘、手机或SD卡的读写速度。通过示例展示了如何进行纯写速度和纯读速度的测试,并解析了测试结果以计算出具体的速率。

1.语法:
time dd if=path/input_file of=/path/output_file bs=block_size count=number_of_blocks

time有计时作用,dd用于复制,从if读出,写到of;

if=                输入文件名,缺省为标准输入
of=                输出文件名,缺省为标准输出
ibs=                一次读入字节数(即一个块大小)
obs=                一次写字节数(即一个块大小) 
bs=                 同时设置读写块的大小 ,可代替 ibs 和 obs 。 
cbs=                一次转换字节,即转换缓冲区大小。 
skip=                从输入文件开头跳过 blocks 个块后再开始复制。 
seek=           从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效) 
count=             仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。 
conv=conversion[,conversion...]    用指定的参数转换文件。
iflag=                         指定读的方式,参见“FLAGS参数说明”
oflag=                         指定写的方式,参见“FLAGS参数说明”

2.两个特殊设备:

(1) if=/dev/zero(产生字符)不产生IO,因此可以用来测试纯写速度;

(2) of=/dev/null(回收站、无底洞)不产生IO,可以用来测试纯读速度;

 

3.速度

3.1 写速度

time dd if=/dev/zero of=test.txt bs=8k count=300000

=>

300000+0 records in
3

NOTE: Executing Tasks ERROR: ethercat-1.0-r0 do_package: QA Issue: ethercat: Files/directories were installed but not shipped in any package: /lib /lib/modules /lib/modules/5.15.36+gitAUTOINC+19984dd147 /lib/modules/5.15.36+gitAUTOINC+19984dd147/modules.alias /lib/modules/5.15.36+gitAUTOINC+19984dd147/modules.alias.bin /lib/modules/5.15.36+gitAUTOINC+19984dd147/modules.symbols.bin /lib/modules/5.15.36+gitAUTOINC+19984dd147/modules.softdep /lib/modules/5.15.36+gitAUTOINC+19984dd147/modules.builtin.bin /lib/modules/5.15.36+gitAUTOINC+19984dd147/modules.symbols /lib/modules/5.15.36+gitAUTOINC+19984dd147/modules.builtin.alias.bin /lib/modules/5.15.36+gitAUTOINC+19984dd147/modules.dep /lib/modules/5.15.36+gitAUTOINC+19984dd147/modules.dep.bin /lib/modules/5.15.36+gitAUTOINC+19984dd147/modules.devname /lib/modules/5.15.36+gitAUTOINC+19984dd147/kernel /lib/modules/5.15.36+gitAUTOINC+19984dd147/kernel/drivers /lib/modules/5.15.36+gitAUTOINC+19984dd147/kernel/drivers/net /lib/modules/5.15.36+gitAUTOINC+19984dd147/kernel/drivers/net/ethercat /lib/modules/5.15.36+gitAUTOINC+19984dd147/kernel/drivers/net/ethercat/ec_master.ko /lib/modules/5.15.36+gitAUTOINC+19984dd147/kernel/drivers/net/ethercat/ec_generic.ko Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install. ethercat: 19 installed and not shipped files. [installed-vs-shipped] ERROR: ethercat-1.0-r0 do_package: Fatal QA errors found, failing task. ERROR: Logfile of failure stored in: /opt/petalinux/motor1/build/tmp/work/cortexa9t2hf-neon-xilinx-linux-gnueabi/ethercat/1.0-r0/temp/log.do_package.5283 ERROR: Task (/opt/petalinux/motor1/project-spec/meta-user/recipes-apps/ethercat/ethercat.bb:do_package) failed with exit code '1' NOTE: Tasks Summary: Attempted 4242 tasks of which 4241 didn't need to be rerun and 1 failed.
09-14
要解决 ethercat-1.0-r0 在 `do_package` 时文件安装但未打包的 QA 问题,可以从以下几个方面进行排查和解决。 ### 检查配方文件 首先要确保在 `ethercat-1.0-r0` 的配方文件(通常是 `.bb` 或 `.bbappend` 文件)中,正确定义了要打包的文件和目录。例如,使用 `FILES` 变量来指定要包含在包中的文件。 ```python # 在配方文件中添加以下内容来指定要打包的文件 FILES_${PN} += "/lib/modules/5.15.36+gitAUTOINC+19984dd147" ``` ### 检查安装路径 确认文件是否确实安装到了预期的路径。可以在 `do_install` 任务中添加调试信息来查看文件的安装情况。 ```python do_install() { # 安装文件的代码 install -d ${D}/lib/modules/5.15.36+gitAUTOINC+19984dd147 install -m 644 your_module_file.ko ${D}/lib/modules/5.15.36+gitAUTOINC+19984dd147 # 添加调试信息 echo "Installed files:" find ${D}/lib/modules/5.15.36+gitAUTOINC+19984dd147 } ``` ### 检查包分类 确保文件被正确分类到相应的包中。有些文件可能需要被分类到特定的开发包或运行时包中。 ```python # 将文件分类到开发包中 FILES_${PN}-dev += "/lib/modules/5.15.36+gitAUTOINC+19984dd147/include" ``` ### 检查依赖关系 确保相关的依赖项被正确定义,避免因为依赖问题导致文件未被打包。 ```python # 定义依赖项 DEPENDS += "kernel-module-headers" ``` ### 清理和重新构建 有时候,缓存文件可能会导致问题。可以尝试清理构建目录并重新构建。 ```bash bitbake -c clean ethercat-1.0-r0 bitbake ethercat-1.0-r0 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值