<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:11:05 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>[LU-7689] limit lu_site hash table size on clients</title>
                <link>https://jira.whamcloud.com/browse/LU-7689</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;lu_site_init() will allocate a hash table during the setup of both client and osd,&lt;br/&gt;
which use the same default formula: we assume the lu_site cache can take up to 20% of total memory.&lt;/p&gt;

&lt;p&gt;It makes sense for osd but on client, we are allocating a ~128M hash table on a 32G box per mount. To make it worse we are mounting multiple lustre fs on a box so it can take ~128M * mounts of memory.&lt;/p&gt;

&lt;p&gt;We have lu_cache_percent as a module param but we should limit the hash table size by default on clients.&lt;/p&gt;</description>
                <environment></environment>
        <key id="34190">LU-7689</key>
            <summary>limit lu_site hash table size on clients</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="wc-triage">WC Triage</assignee>
                                    <reporter username="lidongyang">Li Dongyang</reporter>
                        <labels>
                            <label>patch</label>
                    </labels>
                <created>Wed, 20 Jan 2016 01:16:11 +0000</created>
                <updated>Mon, 14 Mar 2016 03:19:03 +0000</updated>
                            <resolved>Mon, 14 Mar 2016 03:19:03 +0000</resolved>
                                                    <fixVersion>Lustre 2.9.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="139386" author="gerrit" created="Wed, 20 Jan 2016 01:21:24 +0000"  >&lt;p&gt;Li Dongyang (dongyang.li@anu.edu.au) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/18048&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18048&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7689&quot; title=&quot;limit lu_site hash table size on clients&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7689&quot;&gt;&lt;del&gt;LU-7689&lt;/del&gt;&lt;/a&gt; obdclass: limit lu_site hash table size on clients&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: d715c3ad1be054f52c9787472fae9d16b5e6f94e&lt;/p&gt;</comment>
                            <comment id="140451" author="lidongyang" created="Thu, 28 Jan 2016 22:16:50 +0000"  >&lt;p&gt;I&apos;ve done mdtest with 16 processes, 262144 objects each, 3 iterations.&lt;br/&gt;
That gives us 4 million objects each iteration.&lt;/p&gt;

&lt;p&gt;without the patch:&lt;/p&gt;

&lt;p&gt;mdtest-1.9.3 was launched with 16 total task(s) on 1 node(s)&lt;br/&gt;
Command line used: /system/Benchmarks/mdtest/1.9.3/mdtest -d /mnt/testfs/z00/dyl900/mdtest -n 262144 -i 3&lt;br/&gt;
Path: /mnt/testfs/z00/dyl900&lt;br/&gt;
FS: 854.4 TiB   Used FS: 0.6%   Inodes: 854.5 Mi   Used Inodes: 0.0%&lt;/p&gt;

&lt;p&gt;16 tasks, 4194304 files/directories&lt;/p&gt;

&lt;p&gt;SUMMARY: (of 3 iterations)&lt;br/&gt;
   Operation                      Max            Min           Mean        Std Dev&lt;br/&gt;
   ---------                      &amp;#8212;            &amp;#8212;           ----        -------&lt;br/&gt;
   Directory creation:       4169.451       4049.008       4113.665         49.569&lt;br/&gt;
   Directory stat    :       8553.647       7678.810       8243.482        399.929&lt;br/&gt;
   Directory removal :       2312.643       1684.909       1941.188        268.901&lt;br/&gt;
   File creation     :       3714.316       3666.937       3686.580         20.171&lt;br/&gt;
   File stat         :       7936.584       7511.260       7787.747        195.697&lt;br/&gt;
   File read         :       8772.322       7397.213       8055.384        562.922&lt;br/&gt;
   File removal      :       2814.176       2177.893       2579.797        285.497&lt;br/&gt;
   Tree creation     :       3472.106       2173.215       2956.409        562.996&lt;br/&gt;
   Tree removal      :          7.550          6.808          7.093          0.326&lt;/p&gt;

&lt;p&gt;with the patch applied:&lt;br/&gt;
mdtest-1.9.3 was launched with 16 total task(s) on 1 node(s)&lt;br/&gt;
Command line used: /system/Benchmarks/mdtest/1.9.3/mdtest -d /mnt/testfs/z00/dyl900/mdtest -n 262144 -i 3&lt;br/&gt;
Path: /mnt/testfs/z00/dyl900&lt;br/&gt;
FS: 854.4 TiB   Used FS: 0.6%   Inodes: 854.5 Mi   Used Inodes: 0.0%&lt;/p&gt;

&lt;p&gt;16 tasks, 4194304 files/directories&lt;/p&gt;

&lt;p&gt;SUMMARY: (of 3 iterations)&lt;br/&gt;
   Operation                      Max            Min           Mean        Std Dev&lt;br/&gt;
   ---------                      &amp;#8212;            &amp;#8212;           ----        -------&lt;br/&gt;
   Directory creation:       4258.673       4128.302       4178.702         57.184&lt;br/&gt;
   Directory stat    :       8203.775       8060.866       8147.118         61.982&lt;br/&gt;
   Directory removal :       2356.021       1868.107       2173.262        217.180&lt;br/&gt;
   File creation     :       3683.373       3608.999       3655.445         33.067&lt;br/&gt;
   File stat         :       8058.992       7698.923       7898.330        149.529&lt;br/&gt;
   File read         :       8838.700       8575.945       8680.637        113.714&lt;br/&gt;
   File removal      :       2857.897       2262.444       2657.039        279.036&lt;br/&gt;
   Tree creation     :       4132.319       2755.784       3630.101        620.513&lt;br/&gt;
   Tree removal      :          7.673          6.568          7.151          0.453&lt;/p&gt;

&lt;p&gt;and the hash_bd_depmax is 130 without the patch, 221 while applied.&lt;/p&gt;

&lt;p&gt;Is there any other particular benchmark I should run?&lt;br/&gt;
Thanks &lt;/p&gt;</comment>
                            <comment id="140497" author="yong.fan" created="Fri, 29 Jan 2016 08:04:25 +0000"  >&lt;p&gt;mdtest cannot handle the client-side cache properly since it is general test tool, not Lustre special. I would suggest to do the following test for the performance of traversing directory:&lt;/p&gt;

&lt;p&gt;1) Assume the test directory is TDIR, under the TDIR, generate 10M regular files, you can do that via &apos;touch&apos; (slow), or via Lustre test tool &apos;createmany&apos; (faster than touch).&lt;br/&gt;
2) After generating the test data set, remount the client to drop the client side cache. Then &quot;ls -l TDIR&quot; to measure the performance without cache.&lt;br/&gt;
3) And then &quot;ls -l TDIR&quot; again to measure the performance with cache.&lt;/p&gt;

&lt;p&gt;You can measure the performance with and without your patch, then compare them. Usually, we use multiple clients to generate the test data set in parallel to increase the create speed. 0-stripe file is the most fast case. Depends on you test environment and time, you also can consider to measure 1-stripe and 4-stirpes cases.&lt;/p&gt;</comment>
                            <comment id="140630" author="lidongyang" created="Mon, 1 Feb 2016 04:39:04 +0000"  >&lt;p&gt;Hi all,&lt;br/&gt;
I followed the comment from nash, created 10M files with createmany and here are the results from 0-stripe file:&lt;br/&gt;
without the patch:&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;12:04:58 root@r3:z00&amp;#93;&lt;/span&gt; # time ls -l dyl900 &amp;gt; /dev/null&lt;/p&gt;

&lt;p&gt;real	26m57.756s&lt;br/&gt;
user	1m7.876s&lt;br/&gt;
sys	15m39.102s&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;12:32:54 root@r3:z00&amp;#93;&lt;/span&gt; # time ls -l dyl900 &amp;gt; /dev/null&lt;/p&gt;

&lt;p&gt;real	27m19.028s&lt;br/&gt;
user	1m6.301s&lt;br/&gt;
sys	15m55.731s&lt;/p&gt;

&lt;p&gt;with the patch:&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;14:15:29 root@r3:z00&amp;#93;&lt;/span&gt; # time ls -l dyl900 &amp;gt; /dev/null&lt;/p&gt;

&lt;p&gt;real	25m10.092s&lt;br/&gt;
user	1m6.833s&lt;br/&gt;
sys	13m53.716s&lt;br/&gt;
&lt;span class=&quot;error&quot;&gt;&amp;#91;14:40:51 root@r3:z00&amp;#93;&lt;/span&gt; # time ls -l dyl900 &amp;gt; /dev/null&lt;/p&gt;

&lt;p&gt;real	28m52.916s&lt;br/&gt;
user	1m8.438s&lt;br/&gt;
sys	16m9.032s&lt;/p&gt;

&lt;p&gt;Looking into testing with 1-stripe and 4-stripes files, but I do have a question: how can I create 1-stripe and 4-stripes files using &apos;createmany&apos;?&lt;/p&gt;</comment>
                            <comment id="140641" author="yong.fan" created="Mon, 1 Feb 2016 07:22:28 +0000"  >&lt;blockquote&gt;
&lt;p&gt;Looking into testing with 1-stripe and 4-stripes files, but I do have a question: how can I create 1-stripe and 4-stripes files using &apos;createmany&apos;?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&quot;lfs setstripe -c 1 $TDIR&quot;, then all the regular files created under $TDIR (after the setstripe) will be 1-striped unless you specify the file layout manually. Similarly for 4-striped case, specify &quot;-c 4&quot;.&lt;/p&gt;</comment>
                            <comment id="141110" author="lidongyang" created="Thu, 4 Feb 2016 03:27:52 +0000"  >&lt;p&gt;Here are the results for 1 and 4 stripes:&lt;/p&gt;

&lt;p&gt;1-stripe&lt;br/&gt;
baseline:&lt;br/&gt;
bash-4.1# time ls -l testdir &amp;gt; /dev/null&lt;/p&gt;

&lt;p&gt;real    25m22.670s&lt;br/&gt;
user    1m4.831s&lt;br/&gt;
sys     13m41.840s&lt;br/&gt;
bash-4.1# time ls -l testdir &amp;gt; /dev/null&lt;/p&gt;

&lt;p&gt;real    27m5.056s&lt;br/&gt;
user    1m5.908s&lt;br/&gt;
sys     15m2.135s&lt;/p&gt;

&lt;p&gt;patched:&lt;br/&gt;
bash-4.1# time ls -l testdir &amp;gt; /dev/null &lt;/p&gt;

&lt;p&gt;real    25m42.354s&lt;br/&gt;
user    1m9.786s&lt;br/&gt;
sys     13m57.352s&lt;br/&gt;
bash-4.1# time ls -l testdir &amp;gt; /dev/null &lt;/p&gt;

&lt;p&gt;real    27m3.739s&lt;br/&gt;
user    1m10.196s&lt;br/&gt;
sys     14m59.850s&lt;/p&gt;

&lt;p&gt;4-stripes:&lt;/p&gt;

&lt;p&gt;baseline:&lt;br/&gt;
bash-4.1# time ls -l testdir &amp;gt; /dev/null &lt;/p&gt;

&lt;p&gt;real    41m45.328s&lt;br/&gt;
user    1m14.652s&lt;br/&gt;
sys     32m12.239s&lt;br/&gt;
bash-4.1# time ls -l testdir &amp;gt; /dev/null &lt;/p&gt;

&lt;p&gt;real    46m57.302s&lt;br/&gt;
user    1m15.295s&lt;br/&gt;
sys     36m12.470s&lt;/p&gt;

&lt;p&gt;patched:&lt;br/&gt;
bash-4.1# time ls -l testdir &amp;gt; /dev/null &lt;/p&gt;

&lt;p&gt;real    39m48.663s&lt;br/&gt;
user    1m15.712s&lt;br/&gt;
sys     29m54.248s&lt;br/&gt;
bash-4.1# time ls -l testdir &amp;gt; /dev/null &lt;/p&gt;

&lt;p&gt;real    42m28.805s&lt;br/&gt;
user    1m13.754s&lt;br/&gt;
sys     33m8.527s&lt;/p&gt;

&lt;p&gt;It beats me that with 4 stripes the patched client is actually faster, I did multiple runs to verify that. &lt;/p&gt;</comment>
                            <comment id="141112" author="yong.fan" created="Thu, 4 Feb 2016 04:38:58 +0000"  >&lt;p&gt;Dongyang, thanks for sharing the test results.&lt;/p&gt;</comment>
                            <comment id="145367" author="gerrit" created="Mon, 14 Mar 2016 02:41:36 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/18048/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/18048/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7689&quot; title=&quot;limit lu_site hash table size on clients&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7689&quot;&gt;&lt;del&gt;LU-7689&lt;/del&gt;&lt;/a&gt; obdclass: limit lu_site hash table size on clients&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 522c1eb4d2f5faf1fa87be07d9617df1439fc0d6&lt;/p&gt;</comment>
                    </comments>
                    <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|hzxylr:</customfieldvalue>

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