we use read(2) and write(2) for asynchronous
io.
+ null Doesn't transfer any data, just pretends
+ to. This is mainly used to exercise fio
+ itself and for debugging/testing purposes.
+
iodepth=int This defines how many io units to keep in flight against
the file. The default is 1 for each file defined in this
job, can be overridden with a larger value for higher
shm Use shared memory as the buffers. Allocated
through shmget(2).
+ shmhuge Same as shm, but use huge pages as backing.
+
mmap Use anonymous memory maps as the buffers.
Allocated through mmap(2).
+ mmaphuge Use a memory mapped huge file as the buffer
+ backing. Append filename after mmaphuge, ala
+ mem=mmaphuge:/hugetlbfs/file
+
The area allocated is a function of the maximum allowed
bs size for the job, multiplied by the io depth given.