1.dd命令(基本的测试磁盘io的命令)


dd if=/dev/sda of=test.flie bs=1M count=512 conv=fdatasync

if 读取文件位置


of 写入文件


bs 读写字节单位


count 块数


conv=fdatasync 保证读写到磁盘,而不是内存中。



echo 3 > /proc/sys/vm/drop_caches

清除缓存。(注意在运行dd命令之前首先 运行此命令清除缓存以确保运行不受缓存影响)



2.hdparm


eg: hdparm -T /dev/sda


-T  测试内存的读写速度


-t   测试磁盘io的读写速度



 dmesg | grep data  查看当前磁盘信息




bonni++ 与 iozone  


需要手动安装 


先下载repoforge 配置yum源(根据自己的操作系统安装64位或者32位) http://pan.baidu.com/s/1jGxJ9Sa


rpm -vih rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm


安装完成后


yum -y install bonni++


yum -y install iozone



3.bonni++



bonnie++ -u root   以root用户自动化运行


测试类型为顺序读写文件,随机读写文件,顺序创建文件,随机创建文件。




如何查看centos的IO使用情况_linux





运行结果分析


-Per Chr- 以字符的形式读写


-Block -   以块的形式读写


-Rewrite- 重写


-Seeks--   寻道操作 (寻道是磁盘io中最耗时的一个操作。一量刺头找到磁道,并且相应的扇区转到磁头下面,数据开始传输)




4.iozone 


可以进行多线程并发测试io 


iozone -l 1 -u 1 -r 16k -s 4096m


-l 最低进程数


-u 最大进程数


-r 记录长度大小


-s 测试文件大小 一般情况下设为内存的2倍



如何查看centos的IO使用情况_io_02



结果分析:




 reverse readers   反向读, 就是从文件结尾处开始向前读的操作


stride readers      步进读,可以这样理解,比如开始我读4kb数据,然后再读200kb的数据,这样读取不同大小的数据来实现一些特殊数据结构的测试。