Sorry, fio just doesn't work that way. For example, even if you only did (#1) it will spawn 2 processes as fio forks a worker for every job. So any way you run it, you will get multiple processes with fio. Therefore, I suspect you would need to either reconsider the single-process requirement or look elsewhere. Personally, I'd seriously consider the former as I don't see there being much of a quantifiable difference between 1 process and 3-4 when your looking at an I/O tester. Daniel On Thu, Jul 9, 2015 at 12:57 AM, john gong <johngong0791@xxxxxxxxx> wrote: > Hi Daniel, > > What am i doing is to simulate the ANTUTU benchmark on android 5.1. > We learned that ANTUTU benchmark do the below things sequentially in > the same process. > 1) first sequentially write to a file with bs=8KB. the file's size is 16M. > 2) after write finish, then read the same file from the begin to the > end with bs=4KB. > 3) after 2) finish, then sequentially overwrite to the same file with > bs=4KB, total size is 16M too, > and every 4096 requests do a fsync. > > all done with in the same process. > I have construct one job file to simulate that process. like: > --cut-- > [antutu_io_first_write] > ioengine=sync > size=16m > numjobs=1 > bs=8k > ba=4k > rw=write > gtod_reduce=1 > disk_util=1 > name=antutu_io_first_write > filename=/data/antutu_test > stonewall > [antutu_io_first_read] > ioengine=sync > size=16m > numjobs=1 > bs=8k > ba=4k > rw=read > gtod_reduce=1 > disk_util=1 > name=antutu_io_first_read > filename=/data/antutu_test > stonewall > [antutu_io_second_write] > ioengine=sync > size=16m > numjobs=1 > bs=4k > ba=4k > rw=write > gtod_reduce=1 > disk_util=1 > name=antutu_io_second_write > filename=/data/antutu_test > fsync=4096 > stonewall > --cut-- > > > But result is: > --cut-- > antutu_io_first_write: (groupid=0, jobs=1): err= 0: pid=1451: Sat Feb > 4 20:05:04 2012 > write: io=16384KB, bw=54613KB/s, iops=6826, runt= 300msec > cpu : usr=3.33%, sys=93.33%, ctx=13, majf=0, minf=25 > IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=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 : total=r=0/w=2048/d=0, short=r=0/w=0/d=0 > latency : target=0, window=0, percentile=100.00%, depth=1 > antutu_io_first_read: (groupid=1, jobs=1): err= 0: pid=1452: Sat Feb > 4 20:05:04 2012 > read : io=16384KB, bw=287439KB/s, iops=35929, runt= 57msec > cpu : usr=17.86%, sys=53.57%, ctx=7, majf=0, minf=27 > IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=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 : total=r=2048/w=0/d=0, short=r=0/w=0/d=0 > latency : target=0, window=0, percentile=100.00%, depth=1 > antutu_io_second_write: (groupid=2, jobs=1): err= 0: pid=1453: Sat Feb > 4 20:05:04 2012 > write: io=16384KB, bw=45011KB/s, iops=11252, runt= 364msec > cpu : usr=16.48%, sys=74.18%, ctx=34, majf=0, minf=24 > IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=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 : total=r=0/w=4096/d=0, short=r=0/w=0/d=0 > latency : target=0, window=0, percentile=100.00%, depth=1 > --cut-- > > Obviously it can not satisfy my demand. It forks 3 processes( > pid=1451, pid=1452, pid=1453) to finish these jobs. > I want to do all these actions in just one process. > > Any clue? > > Thanks in advance! > > John Gong > > On Thu, Jul 9, 2015 at 3:00 PM, danielabuggie . <danielabuggie@xxxxxxxxx> wrote: >> Unfortunately, I don't think there is an option then that will >> precisely do what you are asking then. Perhaps if you clarify more >> about what you are looking to test someone can help you approximate it >> better. >> >> Some suggestions though for you to look into: >> * Use a randrw process with percentage_random set to an appropriate >> value to control roughly how many blocks would be read before seeking. >> >> * Also a randrw process with bssplit set to a mix of small and large >> blocks sizes would make "random" IO intermittently more sequential. >> >> Daniel >> >> On Wed, Jul 8, 2015 at 11:08 PM, john gong <johngong0791@xxxxxxxxx> wrote: >>> hi Daniel, >>> >>> Thanks for your suggestion. >>> >>> "stonewall" can not solve my problem. "stonewall" just enforce the >>> processes which do the exact jobs run sequentially. >>> But what I want to do is that all things be done in one process, not >>> with one jobfile. >>> >>> B.R. >>> >>> On Thu, Jul 9, 2015 at 1:21 PM, danielabuggie . <danielabuggie@xxxxxxxxx> wrote: >>>> So you want to run them all with one jobfile, but sequentially and not >>>> simultaneously? >>>> >>>> In that case, stonewall is the option you want to add. >>>> >>>> Daniel >>>> >>>> On Wed, Jul 8, 2015 at 9:02 PM, john gong <johngong0791@xxxxxxxxx> wrote: >>>>> hello Kulkarni & Alireza, >>>>> >>>>> Thanks for your attentions. >>>>> tiobench-example.fio will spawn 16 processes, each job consumes 4 processes. >>>>> But what i want is all things defined in the job description be done >>>>> in one process. >>>>> For example, executes below job description >>>>> --cut-- >>>>> [global] >>>>> engine=sync >>>>> filename=/data/test >>>>> size=100m >>>>> [job1] >>>>> rw=write >>>>> stonewall >>>>> [job2] >>>>> rw=read >>>>> stonewall >>>>> [job3] >>>>> rw=randwrite >>>>> stonewall >>>>> [job4] >>>>> rw=randread >>>>> stonewall >>>>> --cut-- >>>>> >>>>> This job description can satisfy the demand of sequential execute, but >>>>> they will be done in 4 different processes. >>>>> What i want is all things be done in the same process sequentilly. >>>>> >>>>> B.R. >>>>> >>>>> John.Gong >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Thu, Jul 9, 2015 at 11:19 AM, Kulkarni, Vasu <vasu.kulkarni@xxxxxxxxx> wrote: >>>>>> Here's one example with 4 jobs which you can customize >>>>>> https://github.com/axboe/fio/blob/master/examples/tiobench-example.fio >>>>>> >>>>>> >>>>>> On Wed, Jul 8, 2015 at 6:55 PM, john gong <johngong0791@xxxxxxxxx> wrote: >>>>>>> hello All, >>>>>>> >>>>>>> I wonder whether FIO can do below things in the same job? >>>>>>> 1) sequential write >>>>>>> 2) sequential read >>>>>>> 3) randomly write >>>>>>> 4) randomly read >>>>>>> >>>>>>> Namely FIO do not need to spawn other processes to do the things respectively. >>>>>>> All things will be done in the same process. >>>>>>> >>>>>>> Thanks in advance! >>>>>>> >>>>>>> John.Gong >>>>>>> -- >>>>>>> To unsubscribe from this list: send the line "unsubscribe fio" in >>>>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx >>>>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> A ship is safer in a harbor. But that's not what ships are built for. >>>>> -- >>>>> To unsubscribe from this list: send the line "unsubscribe fio" in >>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx >>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html