summaryrefslogtreecommitdiff
path: root/examples/pmemblk.fio
blob: f813174100aafef4acc97b84c74d078ca107a931 (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
[global]
bs=1m
ioengine=pmemblk
norandommap
time_based
runtime=30
group_reporting
disable_lat=1
disable_slat=1
disable_clat=1
clat_percentiles=0
cpus_allowed_policy=split

# For the pmemblk engine:
#
#   IOs always complete immediately
#   IOs are always direct
#   Must use threads
#
iodepth=1
direct=1
thread
numjobs=16
#
# Unlink can be used to remove the files when done, but if you are
# using serial runs with stonewall, and you want the files to be created
# only once and unlinked only at the very end, then put the unlink=1
# in the last group.  This is the method demonstrated here.
#
# Note that if you have a read-only group and if the files will be
# newly created, then all of the data will read back as zero and the
# read will be optimized, yielding performance that is different from
# that of reading non-zero blocks (or unoptimized zero blocks).
#
unlink=0
#
# The pmemblk engine does IO to files in a DAX-mounted filesystem.
# The filesystem should be created on an NVDIMM (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.
#
# Here we specify a test file on each of two NVDIMMs.  The first
# number after the file name is the block size in bytes (4096 bytes
# in this example).  The second number is the size of the file to
# create in MiB (1 GiB in this example); note that the actual usable
# space available to fio will be less than this as libpmemblk requires
# some space for metadata.
#
# Currently, the minimum block size is 512 bytes and the minimum file
# size is about 17 MiB (these are libpmemblk requirements).
#
# While both files in this example have the same block size and file
# size, this is not required.
#
filename=/pmem0/fio-test,4096,1024
filename=/pmem1/fio-test,4096,1024

[pmemblk-write]
rw=randwrite
stonewall

[pmemblk-read]
rw=randread
stonewall
#
# We're done, so unlink the file:
#
unlink=1