fio基础22

2022-04-24 00:28:40 浏览数 (1)

[libaio]userspace_reapNormally,withthelibaioengineinuse,fiowillusetheio_geteventssystemcalltoreapnewlyreturnedevents.Withthisflagturnedon,theAIOringwillbereaddirectlyfromuser-spacetoreapevents.Thereapingmodeisonlyenabledwhenpollingforaminimumof0events(egwheniodepth_batch_complete=0).[cpu]cpuload=intAttempttousethespecifiedpercentageofCPUcycles.[cpu]cpuchunks=intSplittheloadintocyclesofthegiventime.Inmicroseconds.[cpu]exit_on_io_done=boolDetectwhenIOthreadsaredone,thenexit.[netsplice]hostname=str[net]hostname=strThehostnameorIPaddresstouseforTCPorUDPbasedIO.IfthejobisaTCPlistenerorUDPreader,thehostnameisnotusedandmustbeomittedunlessitisavalidUDPmulticastaddress.[netsplice]port=int[net]port=intTheTCPorUDPporttobindtoorconnectto.Ifthisisusedwithnumjobstospawnmultipleinstancesofthesamejobtype,thenthiswillbethestartingportnumbersincefiowillusearangeofports.[netsplice]interface=str[net]interface=strTheIPaddressofthenetworkinterfaceusedtosendorreceiveUDPmulticast[netsplice]ttl=int[net]ttl=intTime-to-livevalueforoutgoingUDPmulticastpackets.Default:1[netsplice]nodelay=bool[net]nodelay=boolSetTCP_NODELAYonTCPconnections.[netsplice]protocol=str[netsplice]proto=str[net]protocol=str[net]proto=strThenetworkprotocoltouse.Acceptedvaluesare:tcpTransmissioncontrolprotocoltcpv6TransmissioncontrolprotocolV6udpUserdatagramprotocoludpv6UserdatagramprotocolV6unixUNIXdomainsocketWhentheprotocolisTCPorUDP,theportmustalsobegiven,aswellasthehostnameifthejobisaTCPlistenerorUDPreader.Forunixsockets,thenormalfilenameoptionshouldbeusedandtheportisinvalid.[net]listenForTCPnetworkconnections,tellfiotolistenforincomingconnectionsratherthaninitiatinganoutgoingconnection.Thehostnamemustbeomittedifthisoptionisused.[net]pingpongNormalyanetworkwriterwilljustcontinuewritingdata,andanetworkreaderwilljustconsumepackages.Ifpingpong=1isset,awriterwillsenditsnormalpayloadtothereader,thenwaitforthereadertosendthesamepayloadback.Thisallowsfiotomeasurenetworklatencies.Thesubmissionandcompletionlatenciesthenmeasurelocaltimespentsendingorreceiving,andthecompletionlatencymeasureshowlongittookfortheotherendtoreceiveandsendback.ForUDPmulticasttrafficpingpong=1shouldonlybesetforasinglereaderwhenmultiplereadersarelisteningtothesameaddress.[net]window_sizeSetthedesiredsocketbuffersizefortheconnection.[net]mssSettheTCPmaximumsegmentsize(TCP_MAXSEG).[e4defrag]donorname=strFilewillbeusedasablockdonor(swapextentsbetweenfiles)[e4defrag]inplace=intConfiguredonorfileblocksallocationstrategy0(default):Preallocatedonor's file on init 1 : allocate space immidietly inside defragment event, and free right after event [mtd] skip_bad=bool Skip operations against known bad blocks. 6.0 Interpreting the output --------------------------- fio spits out a lot of output. While running, fio will display the status of the jobs created. An example of that would be: Threads: 1: [_r] [24.8% done] [ 13509/ 8334 kb/s] [eta 00h:01m:31s] The characters inside the square brackets denote the current status of each thread. The possible values (in typical life cycle order) are: Idle Run ---- --- P Thread setup, but not started. C Thread created. I Thread initialized, waiting or generating necessary data. p Thread running pre-reading file(s). R Running, doing sequential reads. r Running, doing random reads. W Running, doing sequential writes. w Running, doing random writes. M Running, doing mixed sequential reads/writes. m Running, doing mixed random reads/writes. F Running, currently waiting for fsync() f Running, finishing up (writing IO logs, etc) V Running, doing verification of written data. E Thread exited, not reaped by main thread yet. _ Thread reaped, or X Thread reaped, exited with an error. K Thread reaped, exited due to signal. Fio will condense the thread string as not to take up more space on the command line as is needed. For instance, if you have 10 readers and 10 writers running, the output would look like this: Jobs: 20 (f=20): [R(10),W(10)] [4.0% done] [2103MB/0KB/0KB /s] [538K/0/0 iops] [eta 57m:36s] Fio will still maintain the ordering, though. So the above means that jobs 1..10 are readers, and 11..20 are writers. The other values are fairly self explanatory - number of threads currently running and doing io, rate of io since last check (read speed listed first, then write speed), and the estimated completion percentage and time for the running group. It'simpossibletoestimateruntimeofthefollowinggroups(ifany).Notethatthestringisdisplayedinorder,soit's possible to tell which of the jobs are currently doing what. The first character is the first job defined in the job file, and so forth. When fio is done (or interrupted by ctrl-c), it will show the data for each thread, group of threads, and disks in that order. For each data direction, the output looks like: Client1 (g=0): err= 0: write: io= 32MB, bw= 666KB/s, iops=89 , runt= 50320msec slat (msec): min= 0, max= 136, avg= 0.03, stdev= 1.92 clat (msec): min= 0, max= 631, avg=48.50, stdev=86.82 bw (KB/s) : min= 0, max= 1196, per=51.00%, avg=664.02, stdev=681.68 cpu : usr=1.49%, sys=0.25%, ctx=7969, majf=0, minf=17 IO depths : 1=0.1%, 2=0.3%, 4=0.5%, 8=99.0%, 16=0.0%, 32=0.0%, >32=0.0% submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% issued r/w: total=0/32768, short=0/0 lat (msec): 2=1.6%, 4=0.0%, 10=3.2%, 20=12.8%, 50=38.4%, 100=24.8%, lat (msec): 250=15.2%, 500=0.0%, 750=0.0%, 1000=0.0%, >=2048=0.0%

0 人点赞