forked from mchad1/fio-parser
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhow-to-run-fio
53 lines (43 loc) · 2.24 KB
/
how-to-run-fio
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
#Sample FIO Config File
% vim /home/user/configfile
[global]
name=fio-test
directory=/mnt/nfs-fio-1 #This is the directory where files are written
ioengine=libaio #Async threads, jobs turned over to asynch threads and core moves on
direct=1 #Use directio, if you use libaio and NFS this must be set to 1 enabling directio
numjobs=1 #To match how many users on the system
nrfiles=4 #Num files per job
runtime=30 #If time_based is set, run for this amount of time
group_reporting #This is used to aggregate the job results, otherwise you have lots of data to parse
time_based #This setting says run the jobs until this much time has elapsed
stonewall
bs=64K
rw=rw||randrw #choose rw if sequential io, choose randrw for random io
rwmixread=100 #<-- Modify to get different i/o distributions
iodepth=15 #<-- Modify this to get the i/o they want (latency * target op count)
size=10G #Aggregate file size per job (if nrfiles = 4, files=2.5GiB)
ramp_time=20 #Warm up
[rw]
[randrw]
#Note: to figure out iodpepth for a single instance test:
use a ping of the storage to find the latency.
Then multiply target io count like this (io count * (latency/1000))
What ever the number is, use that for iodepth IF numjobs=1. Otherwise divide number by numjobs
and set iodepth to the result.
#Note: to figure out iodepth for multiple instance test:
use a ping of the storage to find the latency.
Then multiply target io count like this (iocount * (latency/1000))
What ever that number is, divide it by the produce of numjobs * num scale out instances
Set iodepth to the result of that math. iodepth = (iocount * (latency/1000)) / (numbjobs * num scale out client)
#Sample run Single instance:
% fio configfile
#Sample multi instance run
% cat /home/users/hosts
10.10.10.11
10.10.10.12
10.10.10.13
10.10.10.14
% fio --client=/home/user/hosts configfile --output=<nfs shared directory>/file
Note: To do this latter test, make sure that fio --server is running on all machines. For help doing this see
https://github.com/mchad1/fio-parser/blob/master/get-fio-hosts-ready
#To parse files, used fio-parser.py found in this repo.