@(#)README 1.6 89/07/07 Legato Systems, Inc. This directory contains the source for the nhfsstone (pronounced n-f-s-stone, the "h" is silent) NFS load generating program. This version of the program can only be compiled on 4.x BSD based UNIX systems. nhfsstone is used on an NFS client to generate an artificial load with a particular mix of NFS operations. It reports the average response time of the server in milliseconds per call and the load in calls per second. The program adjusts its calling patterns based on the client's kernel NFS statistics and the elapsed time. Load can be generated over a given time or number of NFS calls. See the "nhfsstone.1" manual page for more details. The files in this directory are: DISCLAIMER legal requirements Makefile Makefile used to build nhfsstone README This file nhfsstone.c source file nhfsstone.1 manual page nhfsrun shell script to run nhfsstone over multiple loads nhfsnums shell script to convert nhfsrun output to plot(5) nhfsgraph shell script to create a graph from nhfsnums output The file "nhfsstone.1" is a manual page that describes how to use the nhfsstone program. To look at it type "nroff -man nhfsstone.1". To build an executable type "make nhfsstone". To install it, become super-user and then type "make install". This will strip the executable, set the group to "kmem" and set the setgid bit. If your site requires different installation of programs that read /dev/kmem you may have to use different ownership or permissions. Make install will also set the execute bits on the shell scripts nhfsrun, nhfsnums and nhfsgraph. To run an nhfsstone test, create a parent test directory on a filesystem that is NFS mounted, cd to that directory and type "nhfsstone". This will do a run with the default settings, load = 30 calls/sec, 5000 calls, and 7 sub-processes. If you want to spread the load across several server disks, first figure out on the server which disk partitions are exported as which filesystems. If you don't already have more than one of these filesystems mounted on your test client you can mount them in temporary locations, like /mnt. Create test directories on these filesystems so that the load will be distributed according to the simulation that you want to run (for example, you might put 4 test directories on the filesystem where the diskless client's root and swap live, and 2 on the home directories filesystem, and one on the executables filesystem). Now create a parent test directory cd to it, and make symbolic links with the names testdir0, testdir1, ... testdir6, that point to the real test directories. Finally, run nhfsstone from the parent test directory. If you are doing the test from a diskless machine, putting half of the test directories in /tmp or /usr/tmp and running the test from your home directory will simulate real diskless load patterns fairly well. To do a run over multiple load levels, edit the shell script "nhfsrun" and set the shell variables "START", "END", and "INCR" to be the correct starting and ending loads, and load increment. The script will iterate from START to END with an increment of INCR, run nhfsstone at each load level, and put the output in the file "run.out". The output file name can be changed by editing the nhfsrun script and changing the "OUTFILE" variable or by passing a file name suffix on the command line: nhfsrun xysd This produces the output file "run.xysd". The script "nhfsnums" takes the output from nhfsrun and converts it into plot(5) format so that it can be graphed using graph(1) and other tools. It takes its input either from files given on the command line or from standard in: nhfsnums [numsfile] ... If file names are given, the suffix of each name (the part after the ".") is used as the line label for the set of numbers produced (see plot(5)). "nhfsgraph" takes the output from nhfsnums and passes it to graph(1) with the right arguments to produce PostScript output for a labeled graph. The nhfsgraph script can be used as a filter: nhfsnums run.* | nhfsgraph | lpr This program is provided free of charge to anyone who wants it provided certain conditions are met (see DISCLAIMER file for more details). If you would like to receive regular information and bug fixes please send your name, and both your Email and U.S. mail addresses to: Legato Systems, Inc. Nhfsstone 260 Sheridan Avenue Palo Alto, California 94306 nhfsstone-request@legato.com or uunet!legato.com!nhfsstone-request and we will add your name to the nhfsstone mailing list. Comments and bug reports should be sent to: nhfsstone@legato.com or uunet!legato.com!nhfsstone