RE: FIO 3.11

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Well, that explain it. I just tested it on my new test environment and it seems to work fine. Read and write are a lot more aligned this way. This seems to work well on block device (LUN) but performance are not as good on files that are on NAS. It keep the proper ratio between read and write but at a slower pace compared to my previous setup that was segmented by jobs (read sequential, write sequential, read random, write random). By manually adjusting numjobs on each, I was able to get the proper read/write ratio needed and as my jobs are on large files, I was able to see from the storage that the disks where providing the data, not the cache.

I guess I'll have to play around to see if that's really what is happening but at first, it look like it.

Thank you for your answer. It corrected my assumptions which will help going forward.


Etienne

-----Message d'origine-----
De : Elliott, Robert (Persistent Memory) <elliott@xxxxxxx> 
Envoyé : October 17, 2018 5:42 PM
À : Etienne-Hugues Fortin <efortin@xxxxxxxxxxxxxxxx>; fio@xxxxxxxxxxxxxxx; 'Jens Axboe' <axboe@xxxxxxxxx>
Objet : RE: FIO 3.11

> First, when we create a profile, my assumption is that if I have two 
> jobs without using 'stonewall', each job will run at the same time and 
> will have the same priority. So, if I want to do a job with a 50% read/write but with 25% random and 75% sequential, I would need a job that look like this:
...
> If so, outside of trying to work the numjobs required to get about 50% 
> R/W, is there a better way of doing this?

The OS controls how different threads progress, and there's nothing keeping them in lockstep.

These will make each thread implement your desired mix:

       rwmixread=int
              Percentage of a mixed workload that should be reads. Default: 50.

       rwmixwrite=int
              Percentage of a mixed workload that 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.

       percentage_random=int[,int][,int]
              For  a  random  workload,  set how big a percentage should be random. This defaults
              to 100%, in which case the workload is fully random. It can be set from anywhere
              from 0 to 100. Setting it to 0 would make the workload fully sequential. Any setting
              in between will result in a random mix of sequential and  random  I/O,  at  the
              given percentages. Comma-separated values may be specified for reads, writes, and
              trims as described in blocksize.

Threads running sequential accesses can easily benefit from cache hits from each other, if there is any caching or prefetching done by the involved drivers or devices.  One thread takes the lead and suffers delays, while the others benefit from its work and stay close behind.  They can take turns, but tend to stay clustered together. This can distort results.
Random accesses avoid that problem, provided the capacity is much larger than any caches.




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux