4 This survey script generates meta-data load on the MDS with varying
5 numbers of threads by using the echo_client to drive different layers
6 of the MDS stack: mdd,mdt, and osd. Currently, we only support mdd layer.
8 It can be used with the following classes of operations
10 1. Open-create/mkdir/create
11 2. Lookup/getattr/setxattr
15 These operations will be run by a variable number of concurrent
16 threads and will test with the number of directories specified by the user.
17 The run can be executed such that all threads operate in a single
18 directory (dir_count=1) or in private/unique directory
19 (dir_count=x thrlo=x thrhi=x).
21 The mdd instance is driven directly. The script automatically
22 loads the obdecho module if required and creates instance of
25 This script can also create OST objects by providing
26 stripe_count greater than zero.
31 The script must be customised according to the components under test and
32 where it should keep its working files. Customization variables are
33 described as followed:
35 thrlo threads to start testing. skipped if less than dir_count
36 thrhi maximum number of threads to test
38 file_count total number of files per thread to test
39 dir_count total number of directories to test
40 stripe_count number stripe on OST objects
41 tests_str test operations. Must have at least "create" and "destroy"
42 start_number base number for each thread to prevent name collisions
44 - Create a Lustre configuraton using your normal methods
46 1. Run without OST objects creation:
47 Setup the Lustre MDS without OST mounted.
48 Then invoke the mds-survey script
49 e.g. : $ thrhi=64 file_count=200000 sh mds-survey
51 2. Run with OST objects creation:
52 Setup the Lustre MDS with at least one OST mounted.
53 Then invoke the mds-survey script with stripe_count parameter
54 e.g. : $ thrhi=64 file_count=200000 stripe_count=2 sh mds-survey
56 Note: a specific mdt instance can be specified using targets variable.
57 e.g. : $ targets=lustre-MDT0000 thrhi=64 file_count=200000 stripe_count=2 sh mds-survey
62 When the script runs, it creates a number of working files and a pair of
63 result files. All files start with the prefix given by ${rslt}.
65 ${rslt}.summary same as stdout
66 ${rslt}.script_* per-host test script files
67 ${rslt}.detail_tmp* per-mdt result files
68 ${rslt}.detail collected result files for post-mortem
70 The script iterates over the given numbers of threads performing
71 all the specified tests and checking that all test processes
72 completed successfully.
74 Note that the script may not clean up properly if it is aborted or if it
75 encounters an unrecoverable error. In this case, manual cleanup may be
76 required, possibly including killing any running instances of 'lctl' (local
77 or remote), removing echo_client instances created by the script and
84 The summary file and stdout contain lines like...
86 mdt 1 file 100000 dir 4 thr 4 create 5652.05 [ 999.01,46940.48] destroy 5797.79 [ 0.00,52951.55]
88 mdt 1 is the total number of MDTs under test.
89 file 100000 is the total number of files to operate
90 dir 4 is the total number of directories to operate
91 thr 4 is the total number of threads operate over all directories
93 destroy are the test name. More tests will be displayed on the same line.
94 565.05 is the aggregate operations over all MDTs measured by
95 dividing the total number of operations by the elapsed time.
96 [999.01,46940.48] are the minimum and maximum instantaneous operation seen on