bs_is_seq_randIfthisoptionisset,fiowillusethenormalread,writeblocksizesettingsassequential,randominstead.AnyrandomreadorwritewillusetheWRITEblocksizesettings,andanysequentialreadorwritewillusetheREADblocksizesetting.zero_buffersIfthisoptionisgiven,fiowillinittheIObufferstoallzeroes.Thedefaultistofillthemwithrandomdata.refill_buffersIfthisoptionisgiven,fiowillrefilltheIObuffersoneverysubmit.Thedefaultistoonlyfillitatinittimeandreusethatdata.Onlymakessenseifzero_buffersisn't specified, naturally. If data verification is enabled, refill_buffers is also automatically enabled. scramble_buffers=bool If refill_buffers is too costly and the target is using data deduplication, then setting this option will slightly modify the IO buffer contents to defeat normal de-dupe attempts. This is not enough to defeat more clever block compression attempts, but it will stop naive dedupe of blocks. Default: true. buffer_compress_percentage=int If this is set, then fio will attempt to provide IO buffer content (on WRITEs) that compress to the specified level. Fio does this by providing a mix of random data and a fixed pattern. The fixed pattern is either zeroes, or the pattern specified by buffer_pattern. If the pattern option is used, it might skew the compression ratio slightly. Note that this is per block size unit, for file/disk wide compression level that matches this setting, you'llalsowanttosetrefill_buffers.buffer_compress_chunk=intSeebuffer_compress_percentage.Thissettingallowsfiotomanagehowbigtherangesofrandomdataandzeroeddatais.Withoutthisset,fiowillprovidebuffer_compress_percentageofblocksizerandomdata,followedbytheremainingzeroed.Withthissettosomechunksizesmallerthantheblocksize,fiocanalternaterandomandzeroeddatathroughouttheIObuffer.buffer_pattern=strIfset,fiowillfilltheiobufferswiththispattern.Ifnotset,thecontentsofiobuffersisdefinedbytheotheroptionsrelatedtobuffercontents.Thesettingcanbeanypatternofbytes,andcanbeprefixedwith0xforhexvalues.Itmayalsobeastring,wherethestringmustthenbewrappedwith"",e.g.:buffer_pattern="abcd"orbuffer_pattern=-12orbuffer_pattern=0xdeadfaceAlsoyoucancombineeverythingtogetherinanyorder:buffer_pattern=0xdeadface"abcd"-12dedupe_percentage=intIfset,fiowillgeneratethispercentageofidenticalbufferswhenwriting.Thesebufferswillbenaturallydedupable.Thecontentsofthebuffersdependonwhatotherbuffercompressionsettingshavebeenset.It's possible to have the individual buffers either fully compressible, or not at all. This option only controls the distribution of unique buffers. nrfiles=int Number of files to use for this job. Defaults to 1. openfiles=int Number of files to keep open at the same time. Defaults to the same as nrfiles, can be set smaller to limit the number simultaneous opens. file_service_type=str Defines how fio decides which file from a job to service next. The following types are defined: random Just choose a file at random. roundrobin Round robin over open files. This is the default. sequential Finish one file before moving on to the next. Multiple files can still be open depending on 'openfiles'. The string can have a number appended, indicating how often to switch to a new file. So if option random:4 is given, fio will switch to a new random file after 4 ios have been issued. ioengine=str Defines how the job issues io to the file. The following types are defined: sync Basic read(2) or write(2) io. lseek(2) is used to position the io location. psync Basic pread(2) or pwrite(2) io. vsync Basic readv(2) or writev(2) IO. psyncv Basic preadv(2) or pwritev(2) IO. libaio Linux native asynchronous io. Note that Linux may only support queued behaviour with non-buffered IO (set direct=1 or buffered=0). This engine defines engine specific options. posixaio glibc posix asynchronous io. solarisaio Solaris native asynchronous io. windowsaio Windows native asynchronous io. mmap File is memory mapped and data copied to/from using memcpy(3). splice splice(2) is used to transfer the data and vmsplice(2) to transfer data from user space to the kernel. syslet-rw Use the syslet system calls to make regular read/write async. sg SCSI generic sg v3 io. May either be synchronous using the SG_IO ioctl, or if the target is an sg character device we use read(2) and write(2) for asynchronous io. null Doesn'ttransferanydata,justpretendsto.Thisismainlyusedtoexercisefioitselfandfordebugging/testingpurposes.netTransferoverthenetworktogivenhost:port.Dependingontheprotocolused,thehostname,port,listenandfilenameoptionsareusedtospecifywhatsortofconnectiontomake,whiletheprotocoloptiondetermineswhichprotocolwillbeused.Thisenginedefinesenginespecificoptions.netspliceLikenet,butusessplice/vmsplicetomapdataandsend/receive.Thisenginedefinesenginespecificoptions.cpuioDoesn't transfer any data, but burns CPU cycles according to the cpuload= and cpucycle= options. Setting cpuload=85 will cause that job to do nothing but burn 85% of the CPU. In case of SMP machines, use numjobs=<no_of_cpu> to get desired CPU usage, as the cpuload only loads a single CPU at the desired rate. guasi The GUASI IO engine is the Generic Userspace Asyncronous Syscall Interface approach to async IO. See http://www.xmailserver.org/guasi-lib.html for more info on GUASI.
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。