1man(1)                      General Commands Manual                     man(1)
2
3
4

NAME

6       nfsometer - NFS performance measurement tool
7

SYNOPSIS

9       nfsometer [options] [mode] [[<server:path>] [workloads...]]
10

DESCRIPTION

12       nfsometer  is a performance measurement framework for running workloads
13       and reporting results across NFS protocol  versions,  NFS  options  and
14       Linux NFS client implementations
15

MODES

17       Basic usage (no mode specified):
18
19        nfsometer <server:path> [workloads...]
20
21         This will fetch needed files, run traces, and generate reports,
22         same as running the the 'fetch', 'trace' and 'report' stages.
23
24       Advanced usage (specify modes):
25
26        nfsometer list
27
28           List the contents of the results directory.
29
30        nfsometer workloads
31
32           List available and unavailable workloads.
33
34        nfsometer notes
35
36           Edit the notes file of the results directory. These notes will
37           be displayed in report headers.
38
39        nfsometer loadgen <server:path> <workload>
40
41           Run in loadgen mode: don't record any stats, just loop over
42           <workload> against <server:path>.  Only one -o option is allowed.
43           Use  the  -n  option to run multuple instances of the loadgen work‐
44       load.
45           When running more than one instance, the intial start times are
46           staggered.
47
48        nfsometer fetch [workloads...]
49
50           Fetch all needed files for the specified workload(s).  If no
51           workloads are specified, all workloads are fetched.
52           Fetched files are only downloaded once and are cached for
53           future runs.
54
55        nfsometer trace <server:path> [workloads...]
56
57           Run traces against <server:path>.  The traces run will be:
58           (options + always options + tags) X (workloads) X (num runs)
59           This will only run traces that don't already exist in the results
60           directory.
61
62        nfsometer report
63
64           Generate all reports available from the results directory.
65
66        nfsometer example
67
68           Show examples from man page
69

OPTIONS

71        -r <dir>, --resultdir=<dir>
72            The directory used to save results.  default:  '/home/dros/nfsome‐
73            ter_results'
74
75
76
77        -o <mount.nfs options>, --options=<mount.nfs options>
78            Mount  options to iterate through.  This option may be used multi‐
79            ple times.  Each mount option must have a version specified.
80
81
82
83        -a <mount.nfs options>, --always-options=<mount.nfs options>
84            Options added to every trace.  This option may  be  used  multiple
85            times.
86
87
88
89        -t <tags>, --tag=<tags>
90            Tag  all new traces with 'tags'.  This option may be used multiple
91            times.
92
93
94
95        -n <num runs>, --num-runs=<num runs>
96            Number of runs for each trace of <options> X <tags> X  <workloads>
97            default: 1
98
99
100
101        --serial-graphs
102            Generate  graphs  inline  while  generating  reports.   Useful for
103            debugging graphing issues.
104
105
106
107        --rand
108            Randomize the order of traces
109
110
111
112        -h, --help
113            Show the help message
114

EXAMPLES

116       Example 1: See what workloads are available
117
118         $ nfsometer workloads
119
120         This command lists available workloads and will tell you why
121         workloads are unavailable (if any exist).
122
123
124       Example 2: Compare cthon, averaged over 3 runs,
125                  across nfs protocol versions
126
127          nfsometer -n 3 server:/export cthon
128
129         This example uses the default for -o: "-o v3 -o v4 -o v4.1".
130         To see the results, open results/index.html in a web browser.
131
132
133       Example 3: Compare cthon, averaged over 3 runs,
134                  between v3 and v4.0 only
135
136         nfsometer -n 3 -o v3 -o v4 server:/export cthon
137
138         This example specifies v3 and v4 only.
139         To see the results, open results/index.html in a web browser.
140
141
142       Example 4: Compare two kernels running iozone workload, averaged
143                  over 2 runs, across all nfs protocol versions
144
145         nfsometer can compare two (or more) kernel versions, but
146         has no way of building, installing or booting new kernels.
147         It's up to the user to install new kernels.
148         In order for these kernels to be differentiated, 'uname -a'
149         must be different.
150
151          1) boot into kernel #1
152
153          2) nfsometer -n 2 server:/export iozone
154
155          3) boot into kernel #2
156
157          4) nfsometer -n 2 server:/export iozone
158
159          5) open results/index.html in a web browser
160
161         To see the results, open results/index.html in a web browser.
162
163
164       Example 5: Using tags
165
166         Tags (the -t option) can be used to mark nfsometer runs as
167         occurring with some configuration not captured by mount options
168         or detectable tags, such as different sysctl settings (client side),
169         different server side options, or different network conditions.
170
171         1) set server value foo to 2.3
172
173         2) nfsometer -o v4 -o v4.1 -t foo=2.3
174
175         3) set server value foo to 10
176
177         4) nfsometer -o v4 -o v4.1 -t foo=10
178
179         What is passed to -t is entirely up to the user - it will not be
180         interpreted or checked by nfsometer at all, so be careful!
181
182         To see the results, open results/index.html in a web browser.
183
184
185       Example 6: Always options
186
187         The -o flag specifies distinct option sets to run, but sometimes
188         there are options that should be present in each.  Instead of
189         writing each one out, you can use the -a option:
190
191         nfsometer -o v3 -o v4 -a sec=krb5 server:/export iozone
192
193         this is equivalent to:
194
195         nfsometer -o v3,sec=krb5 -o v4,sec=krb5 server:/export iozone
196
197
198       Example 7: Using the "custom" workload
199
200         A main use case of nfsometer is the "custom" workload - it allows
201         the user to specify the command that nfsometer is to run.
202
203         NOTE: the command's cwd (current working directory) is the runroot
204               created on the server.
205
206         export NFSOMETER_CMD="echo foo > bar"
207         export NFSOMETER_NAME="echo"
208         export NFSOMETER_DESC="Writes 4 bytes to a file"
209         nfsometer server:/export custom
210
211         This will run 3 traces (v3, v4, v4.1) against server:/export of
212         the command: echo foo > bar.
213
214
215       Example 8: Using the loadgen mode
216
217        Loadgen runs several instances of a workload without capturing
218        traces. The idea is that you use several clients to generate
219        load, then another client to measure performance of a loaded
220        server. The "real" run of nfsometer (not loadgen) should mark
221        the traces using the -t option.
222
223        1) On client A, run the cthon workload to get a baseline of
224           a server without any load.
225
226          nfsometer trace server:/export cthon
227
228        2) When that's done, start loadgen on client B:
229
230          nfsometer -n 10 loadgen server:/export dd_100m_1k
231
232           This runs 10 instances of dd_100m_1k workload on server:/export.
233           It can take several minutes to start in an attempt to stagger
234           all the workload instances.
235
236        3) once all instances are started, run the "real" nfsometer
237           trace on client A.  Use the -t option to mark the traces
238           as having run under load conditions:
239
240          nfsometer -t "10_dd" trace server:/export cthon
241
242        4) Explain how the tests were set up in the result notes.
243           This should be run on client A (which has the traces:
244
245          nfsometer notes
246
247        5) Now generate the reports:
248
249          nfsometer report
250
251       Example 8: Long running nfsometer trace
252
253         The nfsometer.py script currently runs in the foreground.  As
254         such, it will be killed if the tty gets a hangup or the connection
255         to the client is closed.
256
257         For the time being, nfsometer should be run in a screen
258         session, or run with nohup and the output redirected to a file.
259
260          1) screen -RD
261          2) nfsometer -n 2 server:/export iozone
262          3) close terminal window (or ^A^D)
263          ...
264          4) reattach later with screen -RD
265          5) once nfsometer.py is done, results will be in results/index.html
266

SEE ALSO

268       mountstats, nfsstats
269

BUGS

271       No known bugs.
272

AUTHOR

274       Weston Andros Adamson (dros@netapp.com)
275
276
277
278nfsometer                             1.7                               man(1)
Impressum