Linux测试U盘读写速度

本文主要讲述测试U盘的读写速度。

dd命令参数简介

  • if=输入文件;
  • of=输出文件;
  • ibs=一次读取字节数;
  • obs=一次写入字节数;
  • bs=设置一次读取写入的字节数;
  • skip=跳过的bs数;
  • count=拷贝的块数;

黑洞文件/最大空白文件

  • null文件是一个黑洞文件,把它理解为垃圾桶就行,什么废旧不需要的文件只需往里扔,进入它的内容都会永远丢失;
  • zero文件当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00),最长用的做法就是想你这样生产一个特定大小的空白文件。

测试写入速度

dd if=/dev/zero of=/mnt/udisk/a.txt bs=512 count=100
如果提示/mnt/udisk/a.txt: cannot open for write: Read-only file system表示U盘这是个只读的分区,
需要重新mount,如下命令:
mount -o remount,rw /mnt/udisk

执行上述写入之后,会得到如下结果:

1
2
3
100+0 records in
100+0 records out
51200 bytes transferred in 0.002 secs (25600000 bytes/sec)


测试读取速度

#dd if=/mnt/udisk/a.txt of=/dev/null bs=512 count=100

1
2
3
100+0 records in
100+0 records out
51200 bytes transferred in 0.001 secs (51200000 bytes/sec)

一般做上述的测试,最好是要使用大文件来进行测试,得出的数据比较有说服力。


出现的问题

我测试写入U盘10G大写的内容,发现后面报错了:
dd if=/dev/zero of=/mnt/udisk/a.txt bs=512 count=20000000

1
2
3
4
/mnt/udisk/a.txt: write error: File too large
8388608+0 records in
8388607+1 records out
4294967295 bytes transferred in 306.996 secs (13990303 bytes/sec)

4294967295自己约等于4G,也就是说U盘不支持单个文件超过4G的大小。

查看U盘的mount情况,发现使用的是vfat,vfat是FAT32衍生出来的,单个文件大小不能超过4G。

1
/dev/block/vold/8:0 /mnt/udisk vfat rw,dirsync,relatime,uid=1000,gid=1023,fmask=0702,dmask=0702,allow_utime=0020,codepage=437


参考文档

http://blog.csdn.net/janexjx/article/details/50683816

Title:Linux测试U盘读写速度

Author:Victor Huang

Time:2019-06-08 / 13:06

Link:http://wowothink.com/e0007988/

License: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)