On 02/06/2011 03:00 PM, Jens Axboe wrote: > On 2011-02-04 20:21, Steven Pratt wrote: >> I am trying to create a job file that randomly select a file form an imported list and reads the entire file sequentially. Them moves to the next file. I also want multiple jobs(processe) running the same workload. I have this: >> >> [global] >> bs=4k >> time_based=1 >> runtime=15m >> iodepth=4 >> rw=read >> ioengine=libaio >> time_based=1 >> ramp_time=600s >> norandommap >> >> [job1] >> opendir=/${FIO_MOUNT}/session1/small_file1 >> file_service_type=sequential >> numjobs=8 >> >> >> >> I used file_service_type=sequential because tought without it it would >> only do a single read (block) from the file before switching to a >> different file, which is not what I want. The issue with this test as >> written is it seems like all the fio processes choose files in the >> same order so I get way more cache hits than I want. I want this to be >> more of a random file selection, but with reading whole file. Any >> advice? > file_service_type=random:<largenum> > > should do what you need, I think. If you ensure that <largenum> is > sufficiently large that the file will always be finished before you run > out, then that should work. Had thought of that, but seemed kind of hackish. Any way gave it a shot and it kind of worked. It seemed to randomly select a file to operate on, however fio eventually went into a tight spin loop and never exited. Traced that back to get_next_file_rand where apparently if you ever access every file you will never exit(get stuck in "if (fio_file_done(f)) continue;" forever). So now I have 2 problems. One is this infinite loop which is obviously not good. The second (which may help solve the first) is that I want to randomly reuse files. I don't want a perfect no reuse case, and I can't find any way to get that to happen. If reuse were possible, this loop would not be a problem. I guess for now I can just remove the continue and it will do what I want and not loop. Thoughts on a better solution? Steve -- 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