fio基础13

2022-04-24 00:22:50 浏览数 (1)

sync_file_range=str:valUsesync_file_range()forevery'val'numberofwriteoperations.Fiowilltrackrangeofwritesthathavehappenedsincethelastsync_file_range()call.'str'cancurrentlybeoneormoreof:wait_beforeSYNC_FILE_RANGE_WAIT_BEFOREwriteSYNC_FILE_RANGE_WRITEwait_afterSYNC_FILE_RANGE_WAIT_AFTERSoifyoudosync_file_range=wait_before,write:8,fiowoulduseSYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITEforevery8writes.Alsoseethesync_file_range(2)manpage.ThisoptionisLinuxspecific.overwrite=boolIftrue,writestoafilewillalwaysoverwriteexistingdata.Ifthefiledoesn't already exist, it will be created before the write phase begins. If the file exists and is large enough for the specified write phase, nothing will be done. end_fsync=bool If true, fsync file contents when a write stage has completed. fsync_on_close=bool If true, fio will fsync() a dirty file on close. This differs from end_fsync in that it will happen on every file close, not just at the end of the job. rwmixread=int How large a percentage of the mix should be reads. rwmixwrite=int How large a percentage of the mix should be writes. If both rwmixread and rwmixwrite is given and the values do not add up to 100%, the latter of the two will be used to override the first. This may interfere with a given rate setting, if fio is asked to limit reads or writes to a certain rate. If that is the case, then the distribution may be skewed. random_distribution=str:float By default, fio will use a completely uniform random distribution when asked to perform random IO. Sometimes it is useful to skew the distribution in specific ways, ensuring that some parts of the data is more hot than others. fio includes the following distribution models: random Uniform random distribution zipf Zipf distribution pareto Pareto distribution When using a zipf or pareto distribution, an input value is also needed to define the access pattern. For zipf, this is the zipf theta. For pareto, it'stheparetopower.Fioincludesatestprogram,genzipf,thatcanbeusedvisualizewhatthegiveninputvalueswillyieldintermsofhitrates.Ifyouwantedtousezipfwithathetaof1.2,youwoulduserandom_distribution=zipf:1.2astheoption.Ifanon-uniformmodelisused,fiowilldisableuseoftherandommap.percentage_random=intForarandomworkload,sethowbigapercentageshouldberandom.Thisdefaultsto100%,inwhichcasetheworkloadisfullyrandom.Itcanbesetfromanywherefrom0to100.Settingitto0wouldmaketheworkloadfullysequential.AnysettinginbetweenwillresultinarandommixofsequentialandrandomIO,atthegivenpercentages.Itispossibletosetdifferentvaluesforreads,writes,andtrim.Todoso,simplyuseacommaseparatedlist.Seeblocksize.norandommapNormallyfiowillcovereveryblockofthefilewhendoingrandomIO.Ifthisoptionisgiven,fiowilljustgetanewrandomoffsetwithoutlookingatpastiohistory.Thismeansthatsomeblocksmaynotbereadorwritten,andthatsomeblocksmayberead/writtenmorethanonce.Ifthisoptionisusedwithverify=andmultipleblocksizes(viabsrange=),onlyintactblocksareverified,i.e.,partially-overwrittenblocksareignored.softrandommap=boolSeenorandommap.Iffiorunswiththerandomblockmapenabledanditfailstoallocatethemap,ifthisoptionissetitwillcontinuewithoutarandomblockmap.Ascoveragewillnotbeascompleteaswithrandommaps,thisoptionisdisabledbydefault.random_generator=strFiosupportsthefollowingenginesforgeneratingIOoffsetsforrandomIO:tauswortheStrong2^88cyclerandomnumbergeneratorlfsrLinearfeedbackshiftregistergeneratortausworthe64Strong64-bit2^258cyclerandomnumbergeneratorTauswortheisastrongrandomnumbergenerator,butitrequirestrackingonthesideifwewanttoensurethatblocksareonlyreadorwrittenonce.LFSRguaranteesthatwenevergeneratethesameoffsettwice,andit's also less computationally expensive. It'snotatruerandomgenerator,however,thoughforIOpurposesit's typically good enough. LFSR only works with single block sizes, not with workloads that use multiple block sizes. If used with such a workload, fio may read or write some blocks multiple times. nice=int Run the job with the given nice value. See man nice(2). prio=int Set the io priority value of this job. Linux limits us to a positive value between 0 and 7, with 0 being the highest. See man ionice(1). prioclass=int Set the io priority class. See man ionice(1). thinktime=int Stall the job x microseconds after an io has completed before issuing the next. May be used to simulate processing being done by an application. See thinktime_blocks and thinktime_spin. thinktime_spin=int Only valid if thinktime is set - pretend to spend CPU time doing something with the data received, before falling back to sleeping for the rest of the period specified by thinktime. thinktime_blocks=int Only valid if thinktime is set - control how many blocks to issue, before waiting 'thinktime' usecs. If not set, defaults to 1 which will make fio wait 'thinktime' usecs after every block. This effectively makes any queue depth setting redundant, since no more than 1 IO will be queued before we have to complete it and do our thinktime. In other words, this setting effectively caps the queue depth if the latter is larger. rate=int Cap the bandwidth used by this job. The number is in bytes/sec, the normal suffix rules apply. You can use rate=500k to limit reads and writes to 500k each, or you can specify read and writes separately. Using rate=1m,500k would limit reads to 1MB/sec and writes to 500KB/sec. Capping only reads or writes can be done with rate=,500k or rate=500k,. The former will only limit writes (to 500KB/sec), the latter will only limit reads. rate_min=int Tell fio to do whatever it can to maintain at least this bandwidth. Failing to meet this requirement, will cause the job to exit. The same format as rate is used for read vs write separation. rate_iops=int Cap the bandwidth to this number of IOPS. Basically the same as rate, just specified independently of bandwidth. If the job is given a block size range instead of a fixed value, the smallest block size is used as the metric. The same format as rate is used for read vs write separation.

0 人点赞