<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:39:44 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LUDOC-36] Document mds-survey</title>
                <link>https://jira.whamcloud.com/browse/LUDOC-36</link>
                <project id="10070" key="LUDOC">Lustre Documentation</project>
                    <description>&lt;p&gt;We need to add details of how to use this new tool in the manual for 2.2&lt;/p&gt;</description>
                <environment></environment>
        <key id="12930">LUDOC-36</key>
            <summary>Document mds-survey</summary>
                <type id="2" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11311&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="1" iconUrl="https://jira.whamcloud.com/images/icons/priorities/blocker.svg">Blocker</priority>
                        <status id="6" iconUrl="https://jira.whamcloud.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="mdiep">Minh Diep</assignee>
                                    <reporter username="pjones">Peter Jones</reporter>
                        <labels>
                            <label>releases</label>
                    </labels>
                <created>Wed, 18 Jan 2012 18:05:14 +0000</created>
                <updated>Tue, 27 Nov 2012 07:19:05 +0000</updated>
                            <resolved>Tue, 27 Mar 2012 13:27:15 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                            <comments>
                            <comment id="26861" author="di.wang" created="Wed, 18 Jan 2012 20:15:16 +0000"  >&lt;p&gt;If the manual is only about how to use mdt_survey script like obdfilter_survey. Minh might be the right person to write it, because he wrote the script. As I knew, he already wrote a README for this script. Thanks.&lt;/p&gt;</comment>
                            <comment id="26865" author="pjones" created="Thu, 19 Jan 2012 01:40:08 +0000"  >&lt;p&gt;Ah yes. Good idea - Thanks Di!&lt;/p&gt;</comment>
                            <comment id="27082" author="zhiqi" created="Fri, 20 Jan 2012 03:43:18 +0000"  >&lt;p&gt;Hi Minh,&lt;/p&gt;

&lt;p&gt;After you wrote the initial content, I can help to test your instructions. It would be a good opportunity for me to learn how mds-survey works.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
Zhiqi&lt;/p&gt;</comment>
                            <comment id="27625" author="mdiep" created="Mon, 30 Jan 2012 16:52:47 +0000"  >&lt;p&gt;24.5 Testing MDS Performance (mds-survey)&lt;/p&gt;

&lt;p&gt;The mds-survey script tests the local metadata performance using the echo_client to drive different layers of the MDS stack: mdd, mdt, osd.&lt;/p&gt;

&lt;p&gt;It can be used with the following classes of operations&lt;/p&gt;

&lt;p&gt;    1. Open-create/mkdir/create&lt;br/&gt;
    2. Lookup/getattr/setxattr&lt;br/&gt;
    3. Delete/destroy&lt;br/&gt;
    4. Unlink/rmdir&lt;/p&gt;

&lt;p&gt;    These operations will be run by a variable number of concurrent threads and will test with the number of     &lt;br/&gt;
    directories specified by the user. The run can be executed such that all threads operate in a single directory &lt;br/&gt;
    (dir_count=1) or in private/unique directory (dir_count=x thrlo=x thrhi=x).&lt;/p&gt;

&lt;p&gt;    The mdd, mdt, or osd instance is driven directly.  The script automatically loads the obdecho module if required  &lt;br/&gt;
    and creates instance of echo_client.&lt;/p&gt;

&lt;p&gt;    This script can also create OST objects by providing stripe_count greater than zero.&lt;/p&gt;

&lt;p&gt;To perform a run:&lt;br/&gt;
    1. Start the Lustre MDT.&lt;br/&gt;
        The Lustre MDT should be mounted on the MDS node to be tested.&lt;br/&gt;
    2. Start the Lustre OSTs (optional, only required when test with OST objects)&lt;br/&gt;
        The Lustre OSTs should be mounted on the OSS node(s).&lt;br/&gt;
    3. Run the mds-survey script as explain below&lt;/p&gt;

&lt;p&gt;    The script must be customized according to the components under test and&lt;br/&gt;
    where it should keep its working files. Customization variables are&lt;br/&gt;
    described as followed:&lt;/p&gt;

&lt;p&gt;    thrlo          threads to start testing. skipped if less than dir_count&lt;br/&gt;
    thrhi          maximum number of threads to test&lt;br/&gt;
    targets        MDT instance&lt;br/&gt;
    file_count     total number of files to test&lt;br/&gt;
    dir_count      total number of directories to test&lt;br/&gt;
    stripe_count   number stripe on OST objects&lt;br/&gt;
    tests_str      test operations. Must have at least &quot;create&quot; and &quot;destroy&quot;&lt;br/&gt;
    start_number   base number for each thread to prevent name collisions&lt;br/&gt;
    layer          MDS stack&apos;s layer to be tested&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Create a Lustre configuration using your normal methods&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;    a. Run without OST objects creation:&lt;br/&gt;
    Setup the Lustre MDS without OST mounted. Then invoke the mds-survey script&lt;br/&gt;
    $ thrhi=64 file_count=200000 sh mds-survey&lt;/p&gt;

&lt;p&gt;    b. Run with OST objects creation:&lt;br/&gt;
    Setup the Lustre MDS with at least one OST mounted. Then invoke the mds-survey script with stripe_count  &lt;br/&gt;
    parameter&lt;br/&gt;
    $ thrhi=64 file_count=200000 stripe_count=2 sh mds-survey&lt;/p&gt;

&lt;p&gt;    Note: a specific mdt instance can be specified using targets variable.&lt;br/&gt;
    $ targets=lustre-MDT0000 thrhi=64 file_count=200000 stripe_count=2 sh mds-survey&lt;/p&gt;

&lt;p&gt;Output files:&lt;/p&gt;

&lt;p&gt;When the script runs, it creates a number of working files and a pair of&lt;br/&gt;
result files.  All files start with the prefix given by ${rslt}.&lt;/p&gt;

&lt;p&gt;${rslt}.summary           same as stdout&lt;br/&gt;
${rslt}.script_*          per-host test script files&lt;br/&gt;
${rslt}.detail_tmp*       per-mdt result files&lt;br/&gt;
${rslt}.detail            collected result files for post-mortem&lt;/p&gt;

&lt;p&gt;The script iterates over the given numbers of threads performing&lt;br/&gt;
all the specified tests and checking that all test processes&lt;br/&gt;
completed successfully.&lt;/p&gt;

&lt;p&gt;Note that the script may not clean up properly if it is aborted or if it&lt;br/&gt;
encounters an unrecoverable error.  In this case, manual cleanup may be&lt;br/&gt;
required, possibly including killing any running instances of &apos;lctl&apos; (local&lt;br/&gt;
or remote), removing echo_client instances created by the script and&lt;br/&gt;
unloading obdecho.&lt;/p&gt;


&lt;p&gt;Script output:&lt;/p&gt;

&lt;p&gt;The summary file and stdout contain lines like...&lt;/p&gt;

&lt;p&gt;mdt 1 file  100000 dir    4 thr    4 create 5652.05 [ 999.01,46940.48] destroy 5797.79 [   0.00,52951.55]&lt;/p&gt;

&lt;p&gt;mdt 1             is the total number of MDTs under test.&lt;br/&gt;
file 100000       is the total number of files to operate&lt;br/&gt;
dir 4             is the total number of directories to operate&lt;br/&gt;
thr 4             is the total number of threads operate over all directories&lt;br/&gt;
create&lt;br/&gt;
destroy           are the test name. More tests will be displayed on the same line.&lt;br/&gt;
565.05            is the aggregate operations over all MDTs measured by&lt;br/&gt;
                  dividing the total number of operations by the elapsed time.&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;999.01,46940.48&amp;#93;&lt;/span&gt; are the minimum and maximum instantaneous operation seen on&lt;br/&gt;
                  any individual MDT.&lt;/p&gt;</comment>
                            <comment id="28065" author="rhenwood" created="Tue, 7 Feb 2012 15:50:19 +0000"  >&lt;p&gt;I often see &lt;tt&gt;SHORT&lt;/tt&gt; and &lt;tt&gt;ERROR&lt;/tt&gt; in the output of my mds-survey run. This needs to be explained in the doc too.&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;# mds-survey 
Tue Feb  7 15:20:45 EST 2012 /usr/bin/mds-survey from wc0008
mdt 1 file  100000 dir    4 thr    4 create 7039.07             ERROR lookup 191596.67             SHORT md_getattr 106189.70             SHORT setxattr 18632.91             ERROR destroy 10423.02             ERROR 
mdt 1 file  100000 dir    4 thr    8 create 6911.21             ERROR lookup 218940.93             SHORT md_getattr 130979.97             SHORT setxattr 4427.82             ERROR destroy 6362.05             ERROR 
mdt 1 file  100000 dir    4 thr   16 create 5213.21             ERROR lookup 189467.26             SHORT md_getattr 113743.37             ERROR setxattr 1720.42             ERROR destroy  706.99             ERROR 
mdt 1 file  100000 dir    4 thr   32 create 


&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
</comment>
                            <comment id="28066" author="rhenwood" created="Tue, 7 Feb 2012 15:51:13 +0000"  >&lt;p&gt;Script is here: &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://review.whamcloud.com/#change,1969&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,1969&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Related LU is here:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://jira.whamcloud.com/browse/LU-633&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;http://jira.whamcloud.com/browse/LU-633&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="29379" author="cliffw" created="Fri, 17 Feb 2012 15:10:47 +0000"  >&lt;p&gt;Minh, can you explain the SHORT messages?&lt;/p&gt;</comment>
                            <comment id="29380" author="cliffw" created="Fri, 17 Feb 2012 15:17:27 +0000"  >&lt;p&gt;From Minh:&lt;br/&gt;
ERROR often caused by out of inode on the mdt&lt;br/&gt;
 SHORT often means there isn&apos;t enough files to generate enough data to collect between 1 second&lt;/p&gt;</comment>
                            <comment id="32126" author="pjones" created="Mon, 26 Mar 2012 12:52:13 +0000"  >&lt;p&gt;Minh did this work under &lt;a href=&quot;http://review.whamcloud.com/#change,2072&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,2072&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="32204" author="mdiep" created="Tue, 27 Mar 2012 13:27:15 +0000"  >&lt;p&gt;merged with master&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="12937">LUDOC-38</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                    <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzvl2v:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7176</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>