我正在尝试将已安装的Sd卡的性能提供给我的主板,我正在使用Iozone工具来做到这一点,但我得到了starnge结果:
命令:
# mount /dev/mmcblk2p2 /mnt/SD
# cd /mnt/SD
# iozone -a -s 10M -r 5K -w -e
结果:
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
10240 5 4283 4136 68681 378738 337652 3871 133905 96074 216912 4122 5013 364024 376181
结果以千字节表示随机读取的速度是300MB / s? 我的卡通常是4级,写入速度是4 MB / s,读取速度和这个值差别不大?
答案 0 :(得分:0)
iozone -a -s 10M -r 5K -w -e
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
10240 5 4283 4136 68681 378738 337652 3871 133905 96074 216912 4122 5013 364024 376181
是的,你的结果是千字节/秒(KB / s;不要使用-s
无声选项,iozone会说Output is in kBytes/sec
),是的,有380 MB / s for" reread"速度(重读后读取速度为200 MB / s?)。但是,如果测试集(10 MB)小于RAM量(可能),则重读可能不是块设备(SD卡/ HDD / SSD)的速度。
大多数操作系统(以及Linux)都具有用于文件系统和块设备的软件缓存内存。当您第一次访问某个块时(自引导后),它将从设备中读取并存储在操作系统的Page Cache中。下一次访问(读取)此块将直接从RAM提供,而不是从设备本身提供(除非在I / O操作中使用O_DIRECT选项,iozone的-I
选项)。
因此,您的测试运行不正确。在使用之前阅读iozone的手册页:http://linux.die.net/man/1/iozone并尝试更大的测试集(千兆字节)或使用-I
来绕过页面缓存。
答案 1 :(得分:0)
这是我使用-I选项时的结果
random random bkwd record stride
KB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
10240 1024 2356 2950 19693 20865 20833 2095 20111 1734 14375 2875 3566 386809 389443
write seq : 2,3 Mo/s
read seq: 19,2 Mo/s
write rand: 2 Mo/s
read rand: 20 Mo/s
read blk 20 Mo/s
为什么读取速度仍然很高?