前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >fio基础22

fio基础22

作者头像
franket
发布2022-04-24 00:28:40
2670
发布2022-04-24 00:28:40
举报
文章被收录于专栏:技术杂记

[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%

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档