当前位置:网站首页>Detailed summary of FIO test hard disk performance parameters and examples (with source code)

Detailed summary of FIO test hard disk performance parameters and examples (with source code)

2022-07-05 08:15:00 Happy learning

One 、 brief introduction

This paper mainly introduces FIO Specific parameters 、 Download the source code and use examples FIO Hard disk performance test ,FIO yes Linux The next open source IOPS Testing tools , It is mainly used for stress testing and performance verification of disks .
It can generate many threads or processes to execute user specific types of I/O operation , By writing job files ( Be similar to k8s Of yaml) Or direct the command to execute the test action , It is equivalent to a multithreaded io Generation tool , Used to generate multiple IO Mode to test the performance of hard disk devices ( In most cases, it is used to test the performance of bare disk ).

Two 、 Source code download and parameter analysis

2.1 Source code download method

1、git Direct download

https://github.com/axboe/fio.git
[[email protected] /]# wget https://github.com/axboe/fio/archive/refs/tags/fio-3.10.zip
[[email protected] /]# cd /root/fio-fio-3.10
[[email protected] /]# ./configure
[[email protected] /]# make && make install

2、 Some system sources already have fio package

[[email protected] /]# apt-get install fio -y  // Direct download 

2.2 Argument parsing

Parameters analysis
-name The name used to output information , In the use of the above command line , Indicates a new job The beginning of , Default is job name
-filename Test file name , Usually choose the disk that needs to be tested data Catalog
-group_reporting Gather all the information , Not every one of them job All show specific results
-iodepth The queue depth of this test
-ioengine The load generated by the engine , Definition job Initiate... To the file io The way .Fio There are many engines , Specifically, you can search online , The commonly used engine is libaio and
-volume and -brick These two are used to test the mount point , Other scenes don't need .
-nrfiles Number of files generated per process
-rw How to read and write , Sequential reading , Sequential writing , random block read , Write at random , Mix reading and writing
-bs Block size , General tests 4k, 8k, 64k, 128k, 1M
-size Size of test file
-threadsfio By default fork() establish job, If this option is set ,fio Will use pthread_create To create threads
-numjobs Number of threads created
-direct The test process bypasses the machine's own buffer or cache, amount to o_direct Other parameters for relatively advanced point usage , such as :-runtime Test duration
-bssplit=4k/40:64k/30:1M/30 Mixed block size ,4k:64k:1M = 4:3:3
bsrange=512-2048 The range of block sizes , Same as bs Parameters
-rw=randrw, -rwmixread=70 Mix reading and writing 7:3

FIO Precautions before test :
1、 Test environment configuration

yum -y install libaio-devel		// install libaio engine , Otherwise, execute fio Will be submitted to the “fio: engine libaio not loadable”, Must be in fio Install before installation , Otherwise, you have to compile and install again fio

2、 When writing the test, pay attention to whether to operate the bare disk or the disk with data , Because the write operation will format the existing data on the hard disk , If you want to test the partition 、 And create a file system , And perform performance test on the disk that has written data , Please note that filename Select the specified file , To avoid overwriting the file system and original data .

2.3 Test case

Read performance test

fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=1000 -group_reporting -name=yaoxu-sda
// test sda Bare disk performance ,-direct=1 Bypassing the machine cache, The queue depth is 1, Block size is 16k, Test the file   The size is 20G, establish 30 Threads , The test duration is 1000s

test result :
 Insert picture description here

Write performance test

fio -filename=/dev/sda -direct=1 -iodepth 256 -thread=1 -rw=write -ioengine=libaio -bs=128k -size=5G -numjobs=4 -runtime=60  -group_reporting -name=eric-test

test result :
 Insert picture description here

3、 ... and 、 Other related links

3.1 Linux Next stream Memory bandwidth test summary with source code

3.2 Linux Lower distinguishing disk (HDD) And SSDs (SSD)

原网站

版权声明
本文为[Happy learning]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207050808412805.html