测试结果
操作 | 普通硬盘 | NAS盘 |
---|---|---|
随机写 | 8.48M/s | 5.98M/s |
随机读 | 8.53M/s | 15.7M/s |
顺序写 | 111M/s | 163M/s |
顺序读 | 111M/s | 163M/s |
由于测试比较耗时,因此只测了一次,结果仅供参考。其中顺序写和顺序读的结果很奇怪,完全一样,确认过了,确实是完全一样的。
CentOS7测试步骤
IO性能测试软件fio安装:
sudo yum install -y fio
注:如果系统有多个硬盘,则先进入到对应的盘后再执行后续的测试命令
随机写:(各参数说明在后面)
sync ; fio --ioengine=libaio --direct=1 --name=test --filename=test --bs=4k --size=1G --readwrite=randwrite --ramp_time=4 --numjobs=5 | tee 01.random_write_result.txt
随机读:
sync ; fio --ioengine=libaio --direct=1 --name=test --filename=test --bs=4k --size=1G --readwrite=randread --ramp_time=4 --numjobs=5 | tee 02.random_read_result.txt
顺序写:
sync ; fio --ioengine=libaio --direct=1 --name=test --filename=test --bs=4M --size=4G --readwrite=write --ramp_time=4 --numjobs=5 | tee 03.sequential_write_result.txt
顺序读:
sync ; fio --ioengine=libaio --direct=1 --name=test --filename=test --bs=4M --size=4G --readwrite=read --ramp_time=4 --numjobs=5 | tee 04.sequential_read_result.txt
最后删除测试文件:
rm -rf test
各参数说明:
sync
:把内存缓存中的文件同步到硬盘中,防止现有的缓存影响接下来的测试结果。
--ioengine=libaio
:使用Linux原生的异步IO
--direct=1
:执行non-buffered I/O,即不缓存的IO。猜测意思是直接写硬盘,而不是写缓存。
--name=test
:本次测试叫什么名称
--filename=test
:写的文件名是当前目录下的test文件
--bs=4k
:块大小是4KB
--size=1G
:写的文件的总大小是1GB
--readwrite=randwrite
:表示当前要执行的操作是随机写
--ramp_time=4
:在统计性能数据之前先提前执行几秒钟,以得到更准确的数据
--numjobs=5
:用几个进程同时执行
命令 | tee 01.random_write_result.txt
:表示既在屏幕上输出内容,同时也把内容保存到文件中