summaryrefslogtreecommitdiff
path: root/examples/libpmem.fio
blob: 3b854a32bff724d2f82ebc1dacb399e5fb2046c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
[global]
bs=4k
size=10g
ioengine=libpmem
norandommap
time_based
group_reporting
invalidate=1
disable_lat=1
disable_slat=1
disable_clat=1
clat_percentiles=0

iodepth=1
iodepth_batch=1
thread
numjobs=1
runtime=300

#
# depends on direct option, flags are set for pmem_memcpy() call:
# direct=1 - PMEM_F_MEM_NONTEMPORAL,
# direct=0 - PMEM_F_MEM_TEMPORAL.
#
direct=1

#
# sync=1 means that pmem_drain() is executed for each write operation.
#
sync=1

#
# In case of 'scramble_buffers=1', the source buffer
# is rewritten with a random value every write operation.
#
# But when 'scramble_buffers=0' is set, the source buffer isn't
# rewritten. So it will be likely that the source buffer is in CPU
# cache and it seems to be high write performance.
#
scramble_buffers=1

#
# Setting for fio process's CPU Node and Memory Node.
# Set proper node below or use `numactl` command along with FIO.
#
numa_cpu_nodes=0
numa_mem_policy=bind:0

#
# split means that each job will get a unique CPU from the CPU set
#
cpus_allowed_policy=split

#
# The libpmem engine does IO to files in a DAX-mounted filesystem.
# The filesystem should be created on a Non-Volatile DIMM (e.g /dev/pmem0)
# and then mounted with the '-o dax' option.  Note that the engine
# accesses the underlying NVDIMM directly, bypassing the kernel block
# layer, so the usual filesystem/disk performance monitoring tools such
# as iostat will not provide useful data.
#
#filename=/mnt/pmem/somefile
directory=/mnt/pmem

[libpmem-seqwrite]
rw=write
stonewall

[libpmem-seqread]
rw=read
stonewall

#[libpmem-randwrite]
#rw=randwrite
#stonewall

#[libpmem-randread]
#rw=randread
#stonewall