USB存储设备读写性能测试
预置条件:
1、U盘文件系统格式为FAT32,U盘及终端必须使用USB3.0接口
操作步骤:
1、将usbtest.sh,拷贝到opt目录下
2、切换到root用户下,给脚步可执行权限chmod +x /opt/usbtest.sh
3、查看USB设备相对路径。例如:/media/lccy/u盘名
4、运行./usbtest.sh /media/lccy/u盘名
5、5次结果将保存到U盘根目录下的result中。
脚本
#!/bin/bash
path=$1/testfile
results=$1/results
for i in {1…5};
do
rm -rf
p
a
t
h
s
l
e
e
p
10
e
c
h
o
"
第
path sleep 10 echo "第
pathsleep10echo"第i次写">>
r
e
s
u
l
t
s
s
l
e
e
p
1
d
d
i
f
=
/
d
e
v
/
z
e
r
o
o
f
=
results sleep 1 dd if=/dev/zero of=
resultssleep1ddif=/dev/zeroof=path bs=100M count=12>>KaTeX parse error: Expected 'EOF', got '&' at position 11: results 2>&̲1 sudo sh -c "s…i次读">>
r
e
s
u
l
t
s
s
l
e
e
p
1
d
d
i
f
=
results sleep 1 dd if=
resultssleep1ddif=path of=/dev/null bs=100M count=12>>$results 2>&1
done
2、dd命令简述:
if=输入文件,
of=输出文件,
ibs=一次读取字节数,
obs=一次写入字节数,
bs=设置一次读取写入的字节数,
skip=跳过的bs数
count=拷贝的块数
3,测试执行
3.1 指令测试
1, df 查看U盘存在电脑上的分区
2, 再把U盘挂载:
sudo mount -t vfat /dev/sdb1 /mut/usb
解除挂载:
umount /mut/usb
查看usb下是否有文件 如果有文件,挂载正确
ls /mut/usb
3, 执行
time dd if=/dev/zero of=/mnt/usb/4g bs=1024 count=4000000
time dd if=/mnt/usb/4g bs=128k | dd of=/dev/null
4,测试写入100MB速度
sync;time dd if=/dev/zero of=/var/sdcard/largefile bs=10k count=10240;time sync
5,测试读取100MB速度 (清除缓存)
sync;echo 3 > /proc/sys/vm/drop_caches;
time dd if=/var/sdcard/largefile of=/dev/null bs=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对应的值。
3.2 脚本工具测试
工具介绍:脚本为包装了dd指令的封装,由公司提供
新建usbtest.sh
#!/bin/bash
path=$1/testfile
results=$1/results
for i in {1…5};
do
rm -rf
p
a
t
h
s
l
e
e
p
10
e
c
h
o
"
第
path sleep 10 echo "第
pathsleep10echo"第i次写">>
r
e
s
u
l
t
s
s
l
e
e
p
1
d
d
i
f
=
/
d
e
v
/
z
e
r
o
o
f
=
results sleep 1 dd if=/dev/zero of=
resultssleep1ddif=/dev/zeroof=path bs=100M count=12>>KaTeX parse error: Expected 'EOF', got '&' at position 11: results 2>&̲1 sudo sh -c "s…i次读">>
r
e
s
u
l
t
s
s
l
e
e
p
1
d
d
i
f
=
results sleep 1 dd if=
resultssleep1ddif=path of=/dev/null bs=100M count=12>>$results 2>&1
done
预置条件:
1、U盘文件系统格式为FAT32,U盘及终端必须使用USB3.0接口
操作步骤:
1、将usbtest.sh,拷贝到opt目录下
2、切换到root用户下,给脚步可执行权限chmod +x /opt/usbtest.sh
3、查看USB设备相对路径。例如:/media/lccy/u盘名
4、运行./usbtest.sh /media/lccy/u盘名
5、5次结果将保存到U盘根目录下的result中。