3 afsload - AFS client load simulator
7 B<afsload> [B<-q>] B<-p> <I<processes>> B<-t> <I<test.conf>>
11 afsload consists of a few scripts that can simulate several AFS clients
12 accessing AFS, for the purposes of simulating load on a fileserver or
13 general AFS cell infrastructure. The access to AFS is done via libuafs,
14 and the synchronization between nodes is done via MPI.
16 The actual AFS actions performed depends on the contents of the given test
17 configuration file. See the documentation for L<AFS::Load::Config> for the
18 format of the contents of that file.
26 Enables "quiet" or "quick" mode. Normally the configuration file
27 specified is checked for validity. If you don't like the extra output
28 the checker gives, or you want to try to run a test configuration even
29 if it specifies errors, give this option.
31 =item B<-p> <I<processes>>
33 This dictates how many client nodes to run as part of the test run. Note
34 that the actual number of processes is a bit higher than this; this
35 specifies how many clients to simulate.
37 =item B<-t> <I<test.conf>>
39 This specifies the test configuration to use. See the documentation for
40 L<AFS::Load::Config> and L<AFS::Load::Action> for details on the
41 contents of this file.
47 The output is in TAP format. Each step defined in the test configuration
48 is a single TAP test. If any node during that step fails, the test fails
49 and diagnostic information is printed. Each step is just identified by
50 the order it appears in the configuration file, unless the test
51 configuration gives that step a name. In which case, the given name also
56 $ afsload -p 20 -t test.conf
57 # Checking if config test.conf is valid for 21 processes...
58 # Config file test.conf has no fatal errors
62 not ok 3 - Step 3: Read contents of foo
63 # Failed test 'Step 3: Read contents of foo'
64 # in /usr/local/lib/afsload/afsload_run.pl at line 127.
66 # On action 2: read(foo)
69 # error string: got: foo contents, expected: bad contents
73 # Looks like you failed 1 test of 6.
75 Each failure tells you which action failed, and the errno, error code,
76 and error string the action failed with. The error code and error
77 string provided are up to each individual action (see
78 L<AFS::Load::Action>), but errno is always just the errno value
79 immediately after the action failed.
83 B<afsload> makes use of these environment variables:
89 Name or location of the B<mpirun> binary to run. This must match the MPI
90 implementation that the Parallel::MPI::Simple Perl module was compiled
91 against that afsload will use.
93 Defaults to C<mpirun> if not specified.
97 Location of the C<libmpi.so> library that we will be using. Due to
98 limitations of some MPI implementations and Perl XS modules, this
99 sometimes may need to be preloaded before running the MPI portion of
102 Defaults to C</usr/lib/libmpi.so> if not specified.
108 Andrew Deason E<lt>adeason@sinenomine.netE<gt>, Sine Nomine Associates.
112 Copyright 2010-2011 Sine Nomine Associates.