linux准确测量U盘读写速度
##挂载U盘
mount-tvfat/dev/sda1/var/sdcard
##测试写入100MB速度
sync;timeddif=/dev/zeroof=/var/sdcard/largefilebs=10kcount=10240;timesync
##测试读取100MB速度(清除缓存)
sync;echo3>/proc/sys/vm/drop_caches;timeddif=/var/sdcard/largefileof=/dev/nullbs=10k
上述测试方法就相对比较准确!
写入100MB时,先刷新flash后,才测量dd命令生成100MB到缓存(同时也有部分正在写入flash)的时间Tdd,最后测量sync的时间Tsync,这个时间即为从缓存写到U盘的时间。平均写入速度为:100MB/(Tdd+Tsync)。
测量读取速度时,亦先sync把缓存中的杂数据写写进flash,并且清除缓存。最后才记录dd命令从U盘写入RAM的时间Tdd,因为/dev/null为tmpfs,没必要计算Tsync,平均读取速度为:100MB/Tdd。
另外,time命令算出的时间要使用real对应的值。
————————————————
1. dd命令简述:
if=输入文件, of=输出文件, ibs=一次读取字节数, obs=一次写入字节数, bs=设置一次读取写入的字节数, skip=跳过的bs数, count=拷贝的块数
2. 使用/dev/null和/dev/zero
1. 把/dev/null看作"黑洞", 它等价于一个只写文件, 所有写入它的内容都会永远丢失
2. /dev/zero是一个伪文件, 但它实际上产生连续不断的null的流##切入u盘目录,测试写入速度
#ddif=/dev/zeroof=./largefilebs=8kcount=10
10+0recordsin
10+0recordsout
81920bytes(82MB)copied,11.0626s,7.4MB/s
##测试读取速度(清除缓存)
#sudosh-c"sync&&echo3>/proc/sys/vm/drop_caches"
#ddif=./largefileof=/dev/nullbs=8k
8+0recordsin
8+0recordsout
65536bytes(66MB)copied,2.90366s,22.6MB/s
实测例子:sync;timeddif=/dev/zeroof=/media/sda1/largefilebs=10kcount=1024;timesync
1024+0recordsin
1024+0recordsout
10485760bytes(10MB,10MiB)copied,0.272702s,38.5MB/s
real0m0.282s
user0m0.000s
sys0m0.270s
real0m0.474s
user0m0.000s
sys0m0.010s
root@imx6qsabresd:/media/sda1#sync;echo3>/proc/sys/vm/drop_caches;timeddif=/media/sda1/largefileof=/dev/nullbs=10k
1024+0recordsin
1024+0recordsout
10485760bytes(10MB,10MiB)copied,0.0330447s,317MB/s
real0m0.042s
user0m0.000s
sys0m0.040s
原文链接:/litao31415/article/details/99683790
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。