<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:10:00 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-14466] metadata performance slows if the metadata migration is process is running </title>
                <link>https://jira.whamcloud.com/browse/LU-14466</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Here is baseline (with enable_dir_auto_split=0) of unlink speed on the sinlge MDT in this configuration.&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@ec01 ~]# mkdir  /ai400x/testdir
[root@ec01 ~]# clush -w  es400nvx1-vm[1-4],ec[01-40] &quot;echo 3 &amp;gt; /proc/sys/vm/drop_caches&quot;
[root@ec01 ~]# salloc -p 40n -N 40 --ntasks-per-node=16  mpirun -mca btl_openib_if_include mlx5_1:1 -x UCX_NET_DEVICES=mlx5_1:1 --bind-to core:overload-allowed --allow-run-as-root /work/tools/bin/mdtest -n 10000 -F -v -d /ai400x/testdir/ -C
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@ec01 ~]# clush -w  es400nvx1-vm[1-4],ec[01-40] &quot;echo 3 &amp;gt; /proc/sys/vm/drop_caches&quot;
[root@ec01 ~]# salloc -p 40n -N 40 --ntasks-per-node=16  mpirun -mca btl_openib_if_include mlx5_1:1 -x UCX_NET_DEVICES=mlx5_1:1 --bind-to core:overload-allowed --allow-run-as-root /work/tools/bin/mdtest -n 2000 -F -v -d /ai400x/testdir/ -r

SUMMARY rate: (of 1 iterations)
   Operation                      Max            Min           Mean        Std Dev
   ---------                      ---            ---           ----        -------
   File creation             :          0.000          0.000          0.000          0.000
   File stat                 :          0.000          0.000          0.000          0.000
   File read                 :          0.000          0.000          0.000          0.000
   File removal              :      20607.477      20607.470      20607.473          0.002
   Tree creation             :          0.000          0.000          0.000          0.000
   Tree removal              :          7.732          7.732          7.732          0.000
V-1: Entering PrintTimestamp...
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Same test with enabling auto restripe (enable_dir_auto_split=1) and unlink files when metadata migration is running behind.&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@ec01 ~]# mkdir  /ai400x/testdir
[root@ec01 ~]# clush -w  es400nvx1-vm[1-4],ec[01-40] &quot;echo 3 &amp;gt; /proc/sys/vm/drop_caches&quot;
[root@ec01 ~]# salloc -p 40n -N 40 --ntasks-per-node=16  mpirun -mca btl_openib_if_include mlx5_1:1 -x UCX_NET_DEVICES=mlx5_1:1 --bind-to core:overload-allowed --allow-run-as-root /work/tools/bin/mdtest -n 10000 -F -v -d /ai400x/testdir/ -C
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;migration already triggered&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@ec01 ~]# lfs df -i
UUID                      Inodes       IUsed       IFree IUse% Mounted on
ai400x-MDT0000_UUID     83050496     4116569    78933927   5% /ai400x[MDT:0] 
ai400x-MDT0001_UUID     83050496      761581    82288915   1% /ai400x[MDT:1] 
ai400x-MDT0002_UUID     83050496      761753    82288743   1% /ai400x[MDT:2] 
ai400x-MDT0003_UUID     83050496      761155    82289341   1% /ai400x[MDT:3] 
ai400x-OST0000_UUID     55574528     1279804    54294724   3% /ai400x[OST:0] 
ai400x-OST0001_UUID     55574528     1281048    54293480   3% /ai400x[OST:1] 
ai400x-OST0002_UUID     55574528     1284039    54290489   3% /ai400x[OST:2] 
ai400x-OST0003_UUID     55574528     1288486    54286042   3% /ai400x[OST:3] 
ai400x-OST0004_UUID     55574528     1310890    54263638   3% /ai400x[OST:4] 
ai400x-OST0005_UUID     55574528     1296812    54277716   3% /ai400x[OST:5] 
ai400x-OST0006_UUID     55574528     1292424    54282104   3% /ai400x[OST:6] 
ai400x-OST0007_UUID     55574528     1293098    54281430   3% /ai400x[OST:7] 

filesystem_summary:    332201984     6401058   325800926   2% /ai400x

[root@ec01 ~]#  lfs getdirstripe /ai400x/testdir/test-dir.0-0/mdtest_tree.0/
lmv_stripe_count: 4 lmv_stripe_offset: 0 lmv_hash_type: fnv_1a_64,migrating
mdtidx		 FID[seq:oid:ver]
     0		 [0x200000e09:0xbaf6:0x0]		
     2		 [0x2c0000c06:0x1e76c:0x0]		
     1		 [0x300000c07:0x1e6c4:0x0]		
     3		 [0x340000c07:0x1e88c:0x0]		
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;start removing all files.&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@ec01 ~]#  clush -w  es400nvx1-vm[1-4],ec[01-40] &quot;echo 3 &amp;gt; /proc/sys/vm/drop_caches&quot;
[root@ec01 ~]# salloc -p 40n -N 40 --ntasks-per-node=16  mpirun -mca btl_openib_if_include mlx5_1:1 -x UCX_NET_DEVICES=mlx5_1:1 --bind-to core:overload-allowed --allow-run-as-root /work/tools/bin/mdtest -n 10000 -F -v -d /ai400x/testdir/ -r
SUMMARY rate: (of 1 iterations)
   Operation                      Max            Min           Mean        Std Dev
   ---------                      ---            ---           ----        -------
   File creation             :          0.000          0.000          0.000          0.000
   File stat                 :          0.000          0.000          0.000          0.000
   File read                 :          0.000          0.000          0.000          0.000
   File removal              :       5268.140       5268.139       5268.139          0.000
   Tree creation             :          0.000          0.000          0.000          0.000
   Tree removal              :         11.465         11.465         11.465          0.000
V-1: Entering PrintTimestamp...
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So, 20K (single MDT without migration) vs 5K (4 x MDT with running migration) unlink opes/sec &lt;/p&gt;</description>
                <environment></environment>
        <key id="62998">LU-14466</key>
            <summary>metadata performance slows if the metadata migration is process is running </summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="wc-triage">WC Triage</assignee>
                                    <reporter username="sihara">Shuichi Ihara</reporter>
                        <labels>
                    </labels>
                <created>Tue, 23 Feb 2021 10:15:53 +0000</created>
                <updated>Mon, 22 Mar 2021 07:50:57 +0000</updated>
                                            <version>Lustre 2.14.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="292770" author="adilger" created="Tue, 23 Feb 2021 15:26:03 +0000"  >&lt;p&gt;I think that setting &quot;&lt;tt&gt;dir_restripe_nsonly=0&lt;/tt&gt;&quot; causing inodes to be migrated will make the performance much slower than leaving the default &quot;&lt;tt&gt;dir_restripe_nsonly=1&lt;/tt&gt;&quot; which only moves the filenames. &lt;/p&gt;

&lt;p&gt;Also, once the auto-split happens earlier during creation then the number of entries moved will be much fewer (ie. 37k) than if the split happens later (ie. 5.25M). That will reduce the impact of the restripe significantly, as it will complete more quickly, and there will be fewer remote entries that need 2 RPCs to unlink. &lt;/p&gt;</comment>
                            <comment id="292771" author="adilger" created="Tue, 23 Feb 2021 15:30:02 +0000"  >&lt;p&gt;Shuichi, you could test the effect of having an earlier auto-split by running a &quot;stat&quot; on the directory shortly after the mdtest starts. Please also set &quot;&lt;tt&gt;dir_restripe_nsonly=1&lt;/tt&gt;&quot; for your future testing. &lt;/p&gt;</comment>
                            <comment id="292832" author="sihara" created="Wed, 24 Feb 2021 07:41:57 +0000"  >&lt;blockquote&gt;&lt;p&gt;I think that setting &quot;dir_restripe_nsonly=0&quot; causing inodes to be migrated will make the performance much slower than leaving the default &quot;dir_restripe_nsonly=1&quot; which only moves the filenames.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;I thought and did default dir_restripe_nsonly=1, but it was no big differences. let me re-test for double check.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Also, once the auto-split happens earlier during creation then the number of entries moved will be much fewer (ie. 37k) than if the split happens later (ie. 5.25M). That will reduce the impact of the restripe significantly, as it will complete more quickly, and there will be fewer remote entries that need 2 RPCs to unlink.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Sure, but in this test, I wanted to see performance impacts when the migration is process running. Not only auto restriping, but e.g. when if administrator triggers metadata migration and user removes files.&lt;/p&gt;</comment>
                            <comment id="292836" author="sihara" created="Wed, 24 Feb 2021 07:56:41 +0000"  >&lt;p&gt;Lai, Andreas, btw is it possible to add additinal stats to see progress of migration in detail? e.g. &quot;completed migration of file/ total number of file&quot;&lt;br/&gt;
That is useful for not only performance evaluation like this, but also real use case. user/administrator could check migration progress in detail and expect estimated time to complete. &lt;/p&gt;</comment>
                            <comment id="292842" author="sihara" created="Wed, 24 Feb 2021 08:25:14 +0000"  >&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@es400nvx1-vm1 ~]#  clush -a lctl get_param mdt.*.enable_dir_restripe mdt.*.enable_dir_auto_split mdt.*.dir_split_count mdt.*.dir_split_delta mdt.*.dir_restripe_nsonly lod.*.mdt_hash | dshbak
----------------
es400nvx1-vm1
----------------
mdt.ai400x-MDT0000.enable_dir_restripe=0
mdt.ai400x-MDT0000.enable_dir_auto_split=1
mdt.ai400x-MDT0000.dir_split_count=50000
mdt.ai400x-MDT0000.dir_split_delta=4
mdt.ai400x-MDT0000.dir_restripe_nsonly=1
lod.ai400x-MDT0000-mdtlov.mdt_hash=fnv_1a_64
....
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;[root@ec01 ~]# lfs df -i
UUID                      Inodes       IUsed       IFree IUse% Mounted on
ai400x-MDT0000_UUID     83050496     4867975    78182521   6% /ai400x[MDT:0] 
ai400x-MDT0001_UUID     83050496      646310    82404186   1% /ai400x[MDT:1] 
ai400x-MDT0002_UUID     83050496      645212    82405284   1% /ai400x[MDT:2] 
ai400x-MDT0003_UUID     83050496      645924    82404572   1% /ai400x[MDT:3] 
ai400x-OST0000_UUID     55574528      806686    54767842   2% /ai400x[OST:0] 
ai400x-OST0001_UUID     55574528      806334    54768194   2% /ai400x[OST:1] 
ai400x-OST0002_UUID     55574528      811480    54763048   2% /ai400x[OST:2] 
ai400x-OST0003_UUID     55574528      811520    54763008   2% /ai400x[OST:3] 
ai400x-OST0004_UUID     55574528      810951    54763577   2% /ai400x[OST:4] 
ai400x-OST0005_UUID     55574528      811091    54763437   2% /ai400x[OST:5] 
ai400x-OST0006_UUID     55574528      807026    54767502   2% /ai400x[OST:6] 
ai400x-OST0007_UUID     55574528      806912    54767616   2% /ai400x[OST:7] 

filesystem_summary:    332201984     6805421   325396563   3% /ai400x

[root@ec01 ~]# clush -w  es400nvx1-vm[1-4],ec[01-40] &quot;echo 3 &amp;gt; /proc/sys/vm/drop_caches&quot;
[root@ec01 ~]# salloc -p 40n -N 40 --ntasks-per-node=16  mpirun -mca btl_openib_if_include mlx5_1:1 -x UCX_NET_DEVICES=mlx5_1:1 --bind-to core:overload-allowed --allow-run-as-root /work/tools/bin/mdtest -n 10000 -F -v -d /ai400x/testdir/ -r

SUMMARY rate: (of 1 iterations)
   Operation                      Max            Min           Mean        Std Dev
   ---------                      ---            ---           ----        -------
   File creation             :          0.000          0.000          0.000          0.000
   File stat                 :          0.000          0.000          0.000          0.000
   File read                 :          0.000          0.000          0.000          0.000
   File removal              :       6134.857       6134.856       6134.857          0.000
   Tree creation             :          0.000          0.000          0.000          0.000
   Tree removal              :         10.607         10.607         10.607          0.000
V-1: Entering PrintTimestamp...
-- finished at 02/24/2021 17:14:50 --
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;dir_restripe_nsonly=0 or 1 were no big diferences on the performance impact. So, we still need two RPCs for unlink if migration is running, but still 4x slower. it&apos;s a bit too overheads isn&apos;t it? &lt;/p&gt;</comment>
                            <comment id="292846" author="adilger" created="Wed, 24 Feb 2021 09:20:17 +0000"  >&lt;blockquote&gt;
&lt;p&gt;is it possible to add additinal stats to see progress of migration in detail? e.g. &quot;completed migration of file/ total number of file&quot;&lt;br/&gt;
That is useful for not only performance evaluation like this, but also real use case. user/administrator could check migration progress in detail and expect estimated time to complete. &lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13482&quot; title=&quot;add verbose stats to lfs_migrate and &amp;quot;lfs migrate&amp;quot;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13482&quot;&gt;&lt;del&gt;LU-13482&lt;/del&gt;&lt;/a&gt; was filed for &quot;&lt;tt&gt;lfs migrate&lt;/tt&gt;&quot; stats, but it is mostly focussed on OST object migration.  It probably makes sense to have a separate ticket for tracking stats for directory migration since this is done on the MDS instead of the client.&lt;/p&gt;</comment>
                            <comment id="292848" author="adilger" created="Wed, 24 Feb 2021 09:55:58 +0000"  >&lt;p&gt;It looks like &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-14212&quot; title=&quot;DNE3: directory migration progress monitor &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-14212&quot;&gt;LU-14212&lt;/a&gt; is the right ticket for directory split/migration monitoring. &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="62994">LU-14465</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="62971">LU-14459</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="61981">LU-14212</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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|i01ncn:</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>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>