<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:14:47 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-8118] very slow metadata performance with shared striped directory</title>
                <link>https://jira.whamcloud.com/browse/LU-8118</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;We are experiencing a severe metadata performance issue intermittently.  So far it has occurred with a striped directory being alter&lt;br/&gt;
ed by many threads on multiple nodes.&lt;/p&gt;

&lt;p&gt;Setup:&lt;br/&gt;
Multiple MDTs, one MDT per MDS&lt;br/&gt;
A directory striped across those MDTs with lfs setdirstripe -D set&lt;br/&gt;
several processes on each of several nodes making metadata changes in that striped dir&lt;/p&gt;

&lt;p&gt;Symptoms:&lt;br/&gt;
Create rates in 10s of creates/second total across all the MDTs hosting the shards&lt;br/&gt;
getdents() times &amp;gt;1000 seconds per getdents() call&lt;/p&gt;

&lt;p&gt;In one case:&lt;br/&gt;
The directory was striped across 10 MDTs and 16 OSTs&lt;br/&gt;
Mdtest had been run as follows:&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;srun -N 10 -n 80 mdtest -d /p/lustre/faaland1/mdtest -n 128000 -F
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The create rate started out about 30,000 creates/second total across all 10 MDTs.  After some time it dropped to 10-20 creates/secon&lt;br/&gt;
d.  On a separate node, which mounted the same filesystem but was not running any of the mdtest processes and was entirely idle, I r&lt;br/&gt;
an ls and observed the very slow getdents() calls.&lt;br/&gt;
On yet another idle node, I created another directory, striped across the same MDTs, and created 10000 files within it.  Create rate&lt;br/&gt;
 was good.  Listing that directory produced getdents() times of about 0.003 seconds.&lt;br/&gt;
There were no indications of network problems within the nodes at the time, nor before or after our test (this is on catalyst and th&lt;br/&gt;
e nodes are normally used for compute jobs and monitored 24x7).&lt;/p&gt;

&lt;p&gt;In the other case:&lt;br/&gt;
This filesystem has 4 MDTs, each on its own MDS, and 2 OSTs.&lt;br/&gt;
The directory is striped across all 4 MDTs and has -D set.&lt;/p&gt;

&lt;p&gt;The workload involved 10 clients, each running 96 threads.  Shell scripts were randomly invoking mkdir, touch, rmdir, or rm (the lat&lt;br/&gt;
ter two having chosen a file or directory to remove).&lt;/p&gt;

&lt;p&gt;Create rate started at about 10,000/sec concurrent with thousands of unlinks, mkdirs, rmdirs, and stats per sec.  All those operatio&lt;br/&gt;
ns slowed to single digit per-second rates.  An ls in that common directory, on a node not running the job, also produced &amp;gt;1000 seco&lt;br/&gt;
nd getdents() calls.&lt;/p&gt;

&lt;p&gt;strace -T output:&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;getdents(3, /* 1061 entries */, 32768)  = 32760 &amp;lt;1887.749809&amp;gt;
getdents(3, /* 1102 entries */, 32768)  = 32760 &amp;lt;1990.174707&amp;gt;
getdents(3, /* 1087 entries */, 32768)  = 32752 &amp;lt;1994.781547&amp;gt;
getdents(3, /* 1056 entries */, 32768)  = 32768 &amp;lt;1907.404333&amp;gt;
brk(0xcf0000)                           = 0xcf0000 &amp;lt;0.000030&amp;gt;
getdents(3, /* 1091 entries */, 32768)  = 32752 &amp;lt;1860.720958&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment>lustre-2.8.0-2.6.32_573.22.1.1chaos.ch5.4.x86_64.x86_64&lt;br/&gt;
clients and servers all on same OS and same Lustre build.&lt;br/&gt;
Patch stack on top of lustre 2.8.0 tag is:&lt;br/&gt;
{noformat}&lt;br/&gt;
cb25ac6 Target building for RHEL7 under Koji.&lt;br/&gt;
675a140 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7841&quot; title=&quot;Lutsre2.8  fails to build on SLES11 SP4 due to unavailability of rst2man/python-docutils&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7841&quot;&gt;&lt;strike&gt;LU-7841&lt;/strike&gt;&lt;/a&gt; doc: stop using python-docutils&lt;br/&gt;
b50a29a &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7893&quot; title=&quot;osd-zfs: calls dmu_objset_disown() with NULL objset_t *&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7893&quot;&gt;&lt;strike&gt;LU-7893&lt;/strike&gt;&lt;/a&gt; osd-zfs: calls dmu_objset_disown() with NULL&lt;br/&gt;
67fe716 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7198&quot; title=&quot;vvp_io.c:701:vvp_io_fault_start()) binary changed while waiting for the page fault lock&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7198&quot;&gt;&lt;strike&gt;LU-7198&lt;/strike&gt;&lt;/a&gt; clio: remove mtime check in vvp_io_fault_start()&lt;br/&gt;
80b4633 LLNL-0000 llapi: get OST count from proc&lt;br/&gt;
e2717c9 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5725&quot; title=&quot;Add lu_object cache site_stats for OFD&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5725&quot;&gt;&lt;strike&gt;LU-5725&lt;/strike&gt;&lt;/a&gt; ofd: Expose OFD site_stats through proc&lt;br/&gt;
8d9a8f2 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-4009&quot; title=&quot;Add ZIL support to osd-zfs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-4009&quot;&gt;LU-4009&lt;/a&gt; osd-zfs: Add tunables to disable sync (DEBUG)&lt;br/&gt;
699abe4 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8073&quot; title=&quot;Eliminate lustre-source rpm package&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8073&quot;&gt;&lt;strike&gt;LU-8073&lt;/strike&gt;&lt;/a&gt; build: Eliminate lustre-source binary package&lt;br/&gt;
71ee38a &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8072&quot; title=&quot;Restore module debuginfo&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8072&quot;&gt;&lt;strike&gt;LU-8072&lt;/strike&gt;&lt;/a&gt; build: Restore module debuginfo&lt;br/&gt;
7fb8959 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7962&quot; title=&quot;Support build against weak-module ZFS install&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7962&quot;&gt;&lt;strike&gt;LU-7962&lt;/strike&gt;&lt;/a&gt; build: Support builds w/ weak module ZFS&lt;br/&gt;
66579d9 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7961&quot; title=&quot;Problem with kernel location detection on CentOS 6&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7961&quot;&gt;&lt;strike&gt;LU-7961&lt;/strike&gt;&lt;/a&gt; build: Fix ldiskfs source autodetect for CentOS 6&lt;br/&gt;
52aa718 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7643&quot; title=&quot;Remove kernel version string from Lustre release field&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7643&quot;&gt;&lt;strike&gt;LU-7643&lt;/strike&gt;&lt;/a&gt; build: Remove Linux version string from RPM release field&lt;br/&gt;
445b063 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-5614&quot; title=&quot;use %kernel_module_package for weak-updates&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-5614&quot;&gt;&lt;strike&gt;LU-5614&lt;/strike&gt;&lt;/a&gt; build: use %kernel_module_package in rpm spec&lt;br/&gt;
f5b8fb1 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;strike&gt;LU-7699&lt;/strike&gt;&lt;/a&gt; build: Convert lustre_ver.h.in into a static .h file&lt;br/&gt;
333612e &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;strike&gt;LU-7699&lt;/strike&gt;&lt;/a&gt; build: Eliminate lustre_build_version.h&lt;br/&gt;
a49b396 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7699&quot; title=&quot;Overhaul lustre&amp;#39;s versioning&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7699&quot;&gt;&lt;strike&gt;LU-7699&lt;/strike&gt;&lt;/a&gt; build: Replace version_tag.pl with LUSTRE-VERSION-GEN&lt;br/&gt;
6948075 &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7518&quot; title=&quot;Remove non-standard cross build stuff from standard spec file&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7518&quot;&gt;&lt;strike&gt;LU-7518&lt;/strike&gt;&lt;/a&gt; build: Remove the Phi accelerator-specific packaging&lt;br/&gt;
ea79df5 New tag 2.8.0-RC5&lt;br/&gt;
{noformat}</environment>
        <key id="36807">LU-8118</key>
            <summary>very slow metadata performance with shared striped directory</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</priority>
                        <status id="3" iconUrl="https://jira.whamcloud.com/images/icons/statuses/inprogress.png" description="This issue is being actively worked on at the moment by the assignee.">In Progress</status>
                    <statusCategory id="4" key="indeterminate" colorName="inprogress"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="laisiyao">Lai Siyao</assignee>
                                    <reporter username="ofaaland">Olaf Faaland</reporter>
                        <labels>
                            <label>llnl</label>
                    </labels>
                <created>Mon, 9 May 2016 21:58:49 +0000</created>
                <updated>Tue, 7 Jun 2016 15:38:11 +0000</updated>
                                            <version>Lustre 2.8.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                            <comments>
                            <comment id="151669" author="adilger" created="Tue, 10 May 2016 17:09:19 +0000"  >&lt;p&gt;Are your workloads creating subdirectories?  Have you tested without &quot;setstripe -D&quot; to see if that is the cause of the slowdown?&lt;/p&gt;</comment>
                            <comment id="151670" author="jgmitter" created="Tue, 10 May 2016 17:09:50 +0000"  >&lt;p&gt;Hi Lai,&lt;/p&gt;

&lt;p&gt;Can you please advise on this?&lt;/p&gt;

&lt;p&gt;Thanks.&lt;br/&gt;
Joe&lt;/p&gt;</comment>
                            <comment id="151685" author="ofaaland" created="Tue, 10 May 2016 18:18:37 +0000"  >&lt;p&gt;Andreas,&lt;br/&gt;
The mdtest workload did not create subdirectories.  I have not tested with a shared directory but without setdirstripe -D.&lt;br/&gt;
-Olaf&lt;/p&gt;</comment>
                            <comment id="151715" author="adilger" created="Tue, 10 May 2016 20:39:54 +0000"  >&lt;p&gt;The &quot;setstripe -D&quot; should only affect subdirectory creation.  That would appear to affect your second example where you wrote &quot;Shell scripts were randomly invoking mkdir, touch, rmdir, or rm&quot; but not the mdtest run, which is only creating files.&lt;/p&gt;

&lt;p&gt;As a starting point, it would be useful to collect full debug logs from one of the clients when it is in the &quot;slow create&quot; mode, to see if it is blocked locally or waiting on the MDS.  If possible, collecting debug logs (at least +dlmtrace +rpctrace) from the MDSes during this slowdown would also be useful.  Do you have any indication that one MDS is slower than the others (higher CPU load or load average) during this time?&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_10490" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>End date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 11 May 2016 21:58:49 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzyazz:</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>
                                                                                                                        <customfield id="customfield_10493" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>Start date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 9 May 2016 21:58:49 +0000</customfieldvalue>

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