<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:55:18 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-12748] parallel readahead needs to be optimized at high number of process</title>
                <link>https://jira.whamcloud.com/browse/LU-12748</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;parallel readahead is enabled by default in master, it contributes to sequential read performance a lot.&#160;&lt;br/&gt;
 However, if the number of IO thread is increased (e.g. NP=NCPU), read performance drops and it&apos;s lower than without readahead. it needs to be tunning and optimization.&lt;br/&gt;
 Here is test configuration and resutls.&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;Client
2 x Platinum 8160 CPU @ 2.10GHz, 192GB memory, 2 x IB-EDR(multi-rail)
CentOS7.6(3.10.0-957.27.2.el7.x86_64)
OFED-4.5
&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;for i in 6 12 24 48; do                                                                                                                                       
        size=$((768/i))                                                                                                                                       
        /work/tools/mpi/gcc/openmpi/2.1.1/bin/mpirun --allow-run-as-root -np $i /work/tools/bin/ior -w -r -t 1m -b ${size}g -e -F -vv -o /scratch0/file  | tee
 ior-1n${i}p-${VER}.log                                                                                                                                       
done
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Summaruy of Read Performance(MB/sec)&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;branch&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;thr=6&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;thr=12&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;thr=24&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;thr=48&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;b2_12&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&#160;9,965&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&#160;14,551&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&#160;17,177&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;18,152&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;master&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;15,252&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&#160;16,026&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&#160;17,842&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;16,991&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;master(pRA=off)&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;10,253&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&#160;14,489&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&#160;17,839&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;18,658&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;


&lt;p&gt;pRA=off&#160; - disabling parallel readahead (llite.*.read_ahead_async_file_threshold_mb=0)&lt;/p&gt;</description>
                <environment>master</environment>
        <key id="56879">LU-12748</key>
            <summary>parallel readahead needs to be optimized at high number of process</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="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="wshilong">Wang Shilong</assignee>
                                    <reporter username="sihara">Shuichi Ihara</reporter>
                        <labels>
                    </labels>
                <created>Wed, 11 Sep 2019 07:12:45 +0000</created>
                <updated>Wed, 17 Feb 2021 22:06:50 +0000</updated>
                            <resolved>Wed, 17 Feb 2021 22:06:50 +0000</resolved>
                                                    <fixVersion>Lustre 2.14.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                            <comments>
                            <comment id="254499" author="wshilong" created="Wed, 11 Sep 2019 07:26:57 +0000"  >&lt;p&gt;The problem could be that we try to submit too much async ra workers, even we limit number of active workers for workqueue did not help.&lt;/p&gt;

&lt;p&gt;I think to fix the problem we could introduce similar idea like what we did for limit RA memory.&lt;br/&gt;
introduce another atomic counter to record flighting active async ra.&lt;/p&gt;

&lt;p&gt;And we limit flighting active async to number of active cpu cores etc which will give us a balance&lt;br/&gt;
from single thread improvements and reduce contention of multiple threads.&lt;/p&gt;</comment>
                            <comment id="254504" author="adilger" created="Wed, 11 Sep 2019 08:16:53 +0000"  >&lt;p&gt;It looks like the crossover is at about NCPU/2 where the performance of parallel readahead and in-process readahead is the same.  If we stop using async readahead at that point it should give the best of both worlds.&lt;/p&gt;</comment>
                            <comment id="265304" author="gerrit" created="Sun, 15 Mar 2020 14:26:49 +0000"  >&lt;p&gt;Wang Shilong (wshilong@ddn.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/37927&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37927&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12748&quot; title=&quot;parallel readahead needs to be optimized at high number of process&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12748&quot;&gt;&lt;del&gt;LU-12748&lt;/del&gt;&lt;/a&gt; readahead: limit async ra requests&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 447b93d563e555f3255995234b35c4546960768e&lt;/p&gt;</comment>
                            <comment id="265305" author="simmonsja" created="Sun, 15 Mar 2020 16:52:57 +0000"  >&lt;p&gt;I was just discussing with Wang about this issue with the &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13258&quot; title=&quot;Bind linux workqueues to specific core&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13258&quot;&gt;&lt;del&gt;LU-13258&lt;/del&gt;&lt;/a&gt; work. Thanks for figuring out the cross over. I will update my patch this new limit.&lt;/p&gt;</comment>
                            <comment id="265953" author="gerrit" created="Tue, 24 Mar 2020 05:22:36 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/37927/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37927/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12748&quot; title=&quot;parallel readahead needs to be optimized at high number of process&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12748&quot;&gt;&lt;del&gt;LU-12748&lt;/del&gt;&lt;/a&gt; readahead: limit async ra requests&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 1427a72002e6b57017f1c66eb95f9bebff9ac37f&lt;/p&gt;</comment>
                            <comment id="269348" author="adilger" created="Tue, 5 May 2020 23:37:55 +0000"  >&lt;p&gt;Li Xi, note that the ability to change labels on the ticket is one of the reasons that we only mark tickets &quot;Resolved&quot; instead of &quot;Closed&quot;.  Otherwise, it is necessary to re-open and close the ticket to change it again.&lt;/p&gt;</comment>
                            <comment id="269359" author="lixi_wc" created="Wed, 6 May 2020 02:24:16 +0000"  >&lt;p&gt;That toally makes sense. Thanks for the explanation, Andreas!&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="57804">LU-13138</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="58107">LU-13258</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|i00mkf:</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>