Initial revision
[nfs-utils.git] / utils / nhfsstone / README
1 @(#)README 1.6 89/07/07 Legato Systems, Inc.
2
3 This directory contains the source for the nhfsstone (pronounced
4 n-f-s-stone, the "h" is silent) NFS load generating program. This
5 version of the program can only be compiled on 4.x BSD based UNIX
6 systems.
7
8 nhfsstone is used on an NFS client to generate an artificial load
9 with a particular mix of NFS operations. It reports the average
10 response time of the server in milliseconds per call and the load in
11 calls per second.  The program adjusts its calling patterns based on
12 the client's kernel NFS statistics and the elapsed time.  Load can be
13 generated over a given time or number of NFS calls. See the "nhfsstone.1"
14 manual page for more details.
15
16 The files in this directory are:
17
18         DISCLAIMER      legal requirements
19         Makefile        Makefile used to build nhfsstone
20         README          This file
21         nhfsstone.c     source file
22         nhfsstone.1     manual page
23         nhfsrun         shell script to run nhfsstone over multiple loads
24         nhfsnums        shell script to convert nhfsrun output to plot(5)
25         nhfsgraph       shell script to create a graph from nhfsnums output
26
27 The file "nhfsstone.1" is a manual page that describes how to use the
28 nhfsstone program. To look at it type "nroff -man nhfsstone.1".
29
30 To build an executable type "make nhfsstone". To install it, become
31 super-user and then type "make install". This will strip the
32 executable, set the group to "kmem" and set the setgid bit. If your
33 site requires different installation of programs that read /dev/kmem
34 you may have to use different ownership or permissions. Make install
35 will also set the execute bits on the shell scripts nhfsrun, nhfsnums
36 and nhfsgraph.
37
38 To run an nhfsstone test, create a parent test directory on a filesystem
39 that is NFS mounted, cd to that directory and type "nhfsstone". This will
40 do a run with the default settings, load = 30 calls/sec, 5000 calls,
41 and 7 sub-processes.
42
43 If you want to spread the load across several server disks, first
44 figure out on the server which disk partitions are exported as which
45 filesystems. If you don't already have more than one of these
46 filesystems mounted on your test client you can mount them in temporary
47 locations, like /mnt. Create test directories on these filesystems so
48 that the load will be distributed according to the simulation that you
49 want to run (for example, you might put 4 test directories on the
50 filesystem where the diskless client's root and swap live, and 2 on the
51 home directories filesystem, and one on the executables filesystem).
52 Now create a parent test directory cd to it, and make symbolic links
53 with the names testdir0, testdir1, ... testdir6, that point to the
54 real test directories. Finally, run nhfsstone from the parent test
55 directory.
56
57 If you are doing the test from a diskless machine, putting half of the
58 test directories in /tmp or /usr/tmp and running the test from your
59 home directory will simulate real diskless load patterns fairly well.
60
61 To do a run over multiple load levels, edit the shell script "nhfsrun" and
62 set the shell variables "START", "END", and "INCR" to be the correct
63 starting and ending loads, and load increment. The script will iterate
64 from START to END with an increment of INCR, run nhfsstone at each
65 load level, and put the output in the file "run.out". The output file
66 name can be changed by editing the nhfsrun script and changing the
67 "OUTFILE" variable or by passing a file name suffix on the command line:
68
69         nhfsrun xysd
70
71 This produces the output file "run.xysd".
72
73 The script "nhfsnums" takes the output from nhfsrun and converts it
74 into plot(5) format so that it can be graphed using graph(1) and other
75 tools. It takes its input either from files given on the command line
76 or from standard in:
77
78         nhfsnums [numsfile] ...
79
80 If file names are given, the suffix of each name (the part after the
81 ".") is used as the line label for the set of numbers produced (see
82 plot(5)).
83
84 "nhfsgraph" takes the output from nhfsnums and passes it to graph(1)
85 with the right arguments to produce PostScript output for a labeled
86 graph. The nhfsgraph script can be used as a filter:
87
88         nhfsnums run.* | nhfsgraph | lpr
89
90
91
92
93 This program is provided free of charge to anyone who wants it provided
94 certain conditions are met (see DISCLAIMER file for more details).
95
96 If you would like to receive regular information and bug fixes please
97 send your name, and both your Email and U.S. mail addresses to:
98
99         Legato Systems, Inc.
100         Nhfsstone
101         260 Sheridan Avenue
102         Palo Alto, California  94306
103
104         nhfsstone-request@legato.com or uunet!legato.com!nhfsstone-request
105
106 and we will add your name to the nhfsstone mailing list. Comments and bug
107 reports should be sent to:
108
109         nhfsstone@legato.com or uunet!legato.com!nhfsstone
110
111