weber Code
Brought to you by:
gnb
This is a test program which simulates multiple separate NFS clients from a single client machine. It uses IP aliases and userspace RPC client code to send NFS traffic that appears to come from multiple hosts. It also includes feedback-controlled call rate code which generates very steady call rates from each simulated client; this allows the IOPS and Throughput numbers in nasmgr's per-client stats pages to be tested. The workload is currently only looping streaming reads using 32KiB rsize one file per simulated client. A PRNG based on the digits of PI sets the relative weights of each simulated client to different values, and a total throughput of 10MB/s (decimal megabytes not binary mebibytes) is divided between clients according to that weighting. The expected call rate and throughput for each client is printed during startup. To use: 1. build and copy the "weber" executable to the client machine. 2. ensure the server has an exported directory /server 3. ensure the server has in /server files called read.N for N=0 to however many simulated clients you want. These should each be a multiple of 32KiB long. Actual size doesn't matter, but small files can live entirely in the server's RAM. I use 1MiB files. 4. run weber. Arguments are: server, number of simulated clients, protocol. The server should be on the 192.168.42/24 subnet (and have it's last octet greater than the number of simulated clients you plan to use) # ./weber shake-g42 32 tcp Creating local IP aliases is inherently very OS-specific. Currently the code only knows how to do so for IRIX. Note, the test.melbourne.sgi.com network has DNS entries for all the addresses in 192.168.42/24, called "fakeN-g42".