distibutions: Extend flexibility of non-uniform random distributions
authorAdam Kupczyk <akupczyk@redhat.com>
Tue, 29 Dec 2020 12:17:17 +0000 (13:17 +0100)
committerAdam Kupczyk <akupczyk@redhat.com>
Mon, 11 Jan 2021 16:18:28 +0000 (17:18 +0100)
commita87c90fd72823d5438d724e5a57ced8d1f7bed3f
treee0a4a223d1649cbcf045fcb9568456adce0876d3
parent674428a527931d86bfb164abcc847508b3be2742
distibutions: Extend flexibility of non-uniform random distributions

This change affects options random_distribution and file_service_type.
For pareto, zipf and gauss distribution a contept of `center` is implemented.
It allows to fix in place a value that is most probable to access.
Example:
fio --randseed=1 --ioengine=libaio --rw=randwrite --nrfiles=16 --bs=4k \
    --size=256m --allow_file_create=1 --write_iolog=log.txt \
    --file_service_type=gauss:10:0.1 --filename_format=object.\$filenum --name=x

cat log.txt |grep write |cut -f 1 -d " " |sort |uniq -c | sort -n | \
sed "s/[.]/ /" | while read a b c; do echo $c $b $a; done |sort -n
0 object 13429
1 object 17928
2 object 14724
3 object 7845
4 object 2476
5 object 468
6 object 44
7 object 3
12 object 24
13 object 318
14 object 1795
15 object 6482

Signed-off-by: Adam Kupczyk <akupczyk@redhat.com>
14 files changed:
HOWTO
cconv.c
filesetup.c
fio.1
fio.h
init.c
lib/gauss.c
lib/gauss.h
lib/zipf.c
lib/zipf.h
options.c
server.h
t/genzipf.c
thread_options.h