linux磁盘性能测试

工具

安装fio

sudo apt install fio

性能测试

随机读4k Q1T1,即随机读取4K大小的数据,队列深度1,线程1

fio -filename=/tmp/test_randread -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=2G -numjobs=1 -runtime=60 -group_reporting -name=mytest

其中-filename=/tmp/test_randread 为我们要测试的文件的路径以及名称,tmp是根目录下的一个文件夹,test_randread是我们测试过程中会生产的一个文件,不用管它。如果我们有多块硬盘要测试,比如我的根目录安装在傲腾905p中,同时一块970evoplus挂载在home的mydata文件下。如果我想测试970evo plus的性能,只需要执行下面的命令,记得将kdt替换为自己的用户名:

fio -filename=/home/kdt/mydata/test_randread -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=2G -numjobs=1 -runtime=60 -group_reporting -name=mytest

随机写4k:

fio -filename=/home/kdt/Documents/test_randwrite -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=2G -numjobs=1 -runtime=60 -group_reporting -name=mytest

这里建议在测试写性能的时候尽量不要是装系统的根目录分区,而是使用home分区。

顺序读:

fio -filename=/home/kdt/Documents/seq_read -direct=1 -iodepth 8 -thread -rw=read -ioengine=psync -bs=1024k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest

顺序写:

fio -filename=/home/username/Documents/seq_write -direct=1 -iodepth 8 -thread -rw=write -ioengine=psync -bs=1024k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest

增大队列深度和线程数可以增加顺序读写的速度,能够得到更接近官方宣传的数值。但是我主要关心4K性能,所以具体设成哪些数值,等待你自己去发现吧。

混合随机读写:

fio -filename=/home/username/Documents/read_write -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest -ioscheduler=noop