From 792f0f1271864abc112181fabf927140e0bbc0b9 Mon Sep 17 00:00:00 2001 From: Minh Diep Date: Tue, 31 Jan 2012 12:01:08 -0800 Subject: [PATCH] LUDOC-36 iokit: add mds-survey information Added mds-survey in lustre-iokit Signed-off-by: Minh Diep Change-Id: Ia5e62b8caa9ae9ff34dea5a95e7f2836f52661c1 --- BenchmarkingTests.xml | 223 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 223 insertions(+) diff --git a/BenchmarkingTests.xml b/BenchmarkingTests.xml index f05d8f3..2d41e71 100644 --- a/BenchmarkingTests.xml +++ b/BenchmarkingTests.xml @@ -16,6 +16,9 @@ + + + @@ -531,6 +534,226 @@ Ost index 2 Read speed 6.98 Write speed 6.16 Ost index 2 Read time 0.14 Write time 0.16 +
+ <indexterm><primary>benchmarking</primary><secondary>MDS +performance</secondary></indexterm>Testing MDS Performance (<literal>mds-survey</literal>) + The mds-survey script tests the local metadata +performance using the echo_client to drive different layers of the MDS stack: +mdd, mdt, osd (current lustre version only supports mdd stack). It can be used with the following classes of operations: + + + Open-create/mkdir/create + + + Lookup/getattr/setxattr + + + Delete/destroy + + + Unlink/rmdir + + + These operations will be run by a variable number of concurrent threads and will test with the number of directories specified by the user. The run can be executed such that all threads operate in a single directory (dir_count=1) or in private/unique directory (dir_count=x thrlo=x thrhi=x). + + The mdd instance is driven directly. The script automatically loads the obdecho module if required and creates instance of echo_client. + + This script can also create OST objects by providing stripe_count greater than zero. + + To perform a run: + + + Start the Lustre MDT. + The Lustre MDT should be mounted on the MDS node to be tested. + + + Start the Lustre OSTs (optional, only required when test with OST objects) + The Lustre OSTs should be mounted on the OSS node(s). + + + Run the mds-survey script as explain below + The script must be customized according to the components under test and where it should keep its working files. Customization variables are described as followed: + + + thrlo - threads to start testing. skipped if less than dir_count + + + thrhi - maximum number of threads to test + + + targets - MDT instance + + + file_count - number of files per thread to test + + + dir_count - total number of directories to test. Must be less than thrhi + + + stripe_count - number stripe on OST objects + + + tests_str - test operations. Must have at least "create" and "destroy" + + + start_number - base number for each thread to prevent name collisions + + + layer - MDS stack's layer to be tested + + + Run without OST objects creation: + Setup the Lustre MDS without OST mounted. Then invoke the mds-survey script + $ thrhi=64 file_count=200000 sh mds-survey + Run with OST objects creation: + Setup the Lustre MDS with at least one OST mounted. Then invoke the mds-survey script with stripe_count parameter + $ thrhi=64 file_count=200000 stripe_count=2 sh mds-survey + Note: a specific mdt instance can be specified using targets variable. + $ targets=lustre-MDT0000 thrhi=64 file_count=200000 stripe_count=2 sh mds-survey + + +
+ Output Files + When the mds-survey script runs, it creates a number of working files and a pair of result files. All files start with the prefix defined in the variable ${rslt}. + + + + + + + + File + + + Description + + + + + + + ${rslt}.summary + + + Same as stdout + + + + + ${rslt}.script_* + + + Per-host test script files + + + + + ${rslt}.detail_tmp* + + + Per-mdt result files + + + + + ${rslt}.detail + + + Collected result files for post-mortem + + + + + + The mds-survey script iterates over the given number of threads performing the specified tests and checks that all test processes have completed successfully. + + The mds-survey script may not clean up properly if it is aborted or if it encounters an unrecoverable error. In this case, a manual cleanup may be required, possibly including killing any running instances of lctl, removing echo_client instances created by the script and unloading obdecho. + +
+
+ Script Output + The .summary file and stdout of the mds-survey script contain lines like: + mdt 1 file 100000 dir 4 thr 4 create 5652.05 [ 999.01,46940.48] destroy 5797.79 [ 0.00,52951.55] + Where: + + + + + + + + Parameter and value + + + Description + + + + + + + mdt 1 + + + Total number of MDT under test + + + + + file 100000 + + + Total number of files per thread to operate + + + + + dir 4 + + + Total number of directories to operate + + + + + thr 4 + + + Total number of threads operate over all directories + + + + + create, destroy + + + Tests name. More tests will be displayed on the same line. + + + + + 565.05 + + + Aggregate operations over MDT measured by dividing the total number of operations by the elapsed time. + + + + + [999.01,46940.48] + + + Minimum and maximum instantaneous operation seen on any individual MDT + + + + + + + If script output has "ERROR", this usually means there is issue during the run such as running out of space on the MDT and/or OST. More detailed debug information is available in the ${rslt}.detail file + +
+
<indexterm><primary>benchmarking</primary><secondary>application profiling</secondary></indexterm>Collecting Application Profiling Information (<literal>stats-collect</literal>) The stats-collect utility contains the following scripts used to collect application profiling information from Lustre clients and servers: -- 1.8.3.1