#fio 硬盘测速 #官网 http://freshmeat.sourceforge.net/projects/fio #安装 yum install libaio-devel fio wget http://brick.kernel.dk/snaps/fio-2.2.5.tar.gz tar -zxvf fio-2.2.5.tar.gz cd fio-2.2.5 make #make 报错 修改os/os-linux.h 增加头文件 #include make install #安装不能直接运行 软连接下ln -s /usr/local/bin/ /usr/bin/ fio --version #参数详情 fio -name=test \ #测试命名 -group_reporting \ #测试结果汇总每个进程的信息 -direct=1 \ #测试过程绕过机器自带的buffer,使测试结果更真实 -filename=/dev/sdb \ #测试对象,对应的硬盘分区 -rw=read \ #测试方式read write rw randwread randwrite randrw #-rwmixwrite=30 \ #混合情况(rw,randrw)下可以分配占比 比如混合写占用30% -bs=4K \ #测试的块文件大小 可以提定范围 bsrange=512-4096 -size=1G \ #测试的文件大小 #-ioengine=psync \ #测试的引擎 默认psync,如果要使用libaio引擎,需要yum install libaio-devel包 -numjobs=4 \ #测试的线程 -runtime=100 #测试的时间 #512~4096随机读写: fio -name 512~4096brw -filename=/dev/sdb -bsrange=512-4096 -direct=1 -numjobs=4 -iodepth=32 -rw=randrw -rwmixwrite=30 -ioengine=libaio -group_reporting -runtime=60s #64K-1024K顺序读写 fio -name 1Mrw -filename=/dev/sdb -bsrange=64k-1024k -direct=1 -numjobs=4 -iodepth=4 -rw=rw -rwmixwrite=30 -group_reporting -ioengine=libaio -runtime=60s #4k随机读: fio -name 4Kr -filename /dev/sdb -bs=4k -numjobs 4 -iodepth=32 -direct=1 -ioengine=libaio -runtime=300s -group_reporting -rw=randread #4k随机写: fio -name 4Kw -filename /dev/sdb -bs=4k -numjobs 4 -iodepth=32 -direct=1 -ioengine=libaio -runtime=300s -group_reporting -rw=randwrite #1024k顺序读: fio -name 1024Kr -filename /dev/sdb -bs=1024k -numjobs 4 -iodepth=32 -direct=1 -ioengine=libaio -runtime=300s -group_reporting -rw=read #1024k顺序写: fio -name 1024Kw -filename /dev/sdb -bs=1024k -numjobs 4 -iodepth=32 -direct=1 -ioengine=libaio -runtime=300s -group_reporting -rw=write #wwid ll /dev/disk/by-id/ #修改 /dev/nvme0n1 echo 3 > /proc/sys/vm/drop_caches fio -name 4Kr -filename /dev/nvme0n1 -bs=4k -numjobs 4 -iodepth=32 -direct=1 -ioengine=libaio -runtime=300s -group_reporting -rw=randread > nvme-DAPUSTOR_DPJD3104T0T803T8000_JR5U30A21C003JXJ.nvme0n1.4k.libaio.randread.out fio -name 4Kw -filename /dev/nvme0n1 -bs=4k -numjobs 4 -iodepth=32 -direct=1 -ioengine=libaio -runtime=300s -group_reporting -rw=randwrite > nvme-DAPUSTOR_DPJD3104T0T803T8000_JR5U30A21C003JXJ.nvme0n1.4k.libaio.randwrite.out fio -name 1024Kr -filename /dev/nvme0n1 -bs=1024k -numjobs 4 -iodepth=32 -direct=1 -ioengine=libaio -runtime=300s -group_reporting -rw=read > nvme-DAPUSTOR_DPJD3104T0T803T8000_JR5U30A21C003JXJ.nvme0n1.1024k.libaio.read.out fio -name 1024Kw -filename /dev/nvme0n1 -bs=1024k -numjobs 4 -iodepth=32 -direct=1 -ioengine=libaio -runtime=300s -group_reporting -rw=write > nvme-DAPUSTOR_DPJD3104T0T803T8000_JR5U30A21C003JXJ.nvme0n1.1024k.libaio.write.out #多盘跑压力 date > fio.out fio -name 1024Kr -filename=/dev/sda -filename=/dev/sdb -filename=/dev/sdc -filename=/dev/sdd -filename=/dev/sde -filename=/dev/sdf -bs=1024k -numjobs 4 -iodepth=32 -direct=1 -ioengine=libaio -runtime=36000s -group_reporting -rw=read -rwmixwrite=30 >> fio.out date >> fio.out #使用配置文件 fio fio.conf #先配置fio.conf 修改directory为需要测试的盘符 : ' ioengine=libaio # 异步IO direct=1 # 排除OS的IO缓存机制的影响 size=1g # 每个fio进程/线程的最大读写 lockmem=1G # 锁定所使用的内存大小 runtime=30 # 测试时间 filename=/dev/sdb # 使用文件,可以直接指定对应硬盘,切勿对操作系统所在盘操作 numjobs=1 # 同时开启的fio进程/线程数为1 rw=randread # 每次测试修改该值:randread/read/randwrite/write/randrw rwmixwrite=30 # 在混合读写的模式下,写占30% bs=4k # 单次io的块文件大小 bsrange=512-2048 # 同上,提定数据块的大小范围 ' cat > fio.conf <