<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:39:25 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-10927] Improve efficiency of OSC LRU reclaim</title>
                <link>https://jira.whamcloud.com/browse/LU-10927</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;We have seen some performance results which make us believe that the LRU cache slot reclaiming might need some improvement.&lt;/p&gt;

&lt;p&gt;In one of the case, when we run a specific kind of application, if we use more memory for Lustre cache (64GB V.S. 8GB), the peformance of the application will be worse, which shouldn&apos;t happen if reclaiming of cache works well.&lt;/p&gt;

&lt;p&gt;And in some other benchmarks, we found performance are really good when the cache is not full. But when performance becomes full, performance drops immediately. That shouldn&apos;t happen either, because the benchmarks only do sequential read, and won&apos;t read back.&lt;/p&gt;

&lt;p&gt;Those results shows that reclaiming of cache needs some improvement, especially when there are a lot of memory cache. One possible cause of the problem is, when memory becomes bigger, osc_lru_reclaim() needs more time to scan the whole list to free slots. Note that even the caller of osc_lru_reclaim() only need one slot, osc_lru_reclaim() will try to reclaim cl_max_pages_per_rpc slots. And the caller of osc_lru_reclaim() is always the I/O thread, that means the reclaiming a batch of slots will intoruduce overhead directly to the application.And the overhead gets larger when memory gets larger.&lt;/p&gt;

&lt;p&gt;Maybe there is a different reason, but we are testing a patch. And I am going to push the patch.&lt;/p&gt;</description>
                <environment></environment>
        <key id="51901">LU-10927</key>
            <summary>Improve efficiency of OSC LRU reclaim</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="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="lixi_wc">Li Xi</assignee>
                                    <reporter username="lixi">Li Xi</reporter>
                        <labels>
                            <label>patch</label>
                    </labels>
                <created>Thu, 19 Apr 2018 02:30:30 +0000</created>
                <updated>Thu, 16 Aug 2018 20:44:14 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                            <comments>
                            <comment id="226308" author="gerrit" created="Thu, 19 Apr 2018 02:42:54 +0000"  >&lt;p&gt;Li Xi (lixi@ddn.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/32066&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32066&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10927&quot; title=&quot;Improve efficiency of OSC LRU reclaim&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10927&quot;&gt;LU-10927&lt;/a&gt; osc: do not spend too much time in osc_lru_reclaim&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 03115d3e0df043204e9b9f6e6fde992fb4cfcaed&lt;/p&gt;</comment>
                            <comment id="226392" author="pjones" created="Thu, 19 Apr 2018 17:09:07 +0000"  >&lt;p&gt;Thanks Li Xi&lt;/p&gt;</comment>
                            <comment id="229445" author="paf" created="Tue, 12 Jun 2018 03:02:42 +0000"  >&lt;p&gt;Is this app single threaded? &#160;Or is each thread somehow working on a different OSC...?&lt;/p&gt;

&lt;p&gt;It&#8217;s hard to see how reducing the batch size could improve performance, even in the single threaded case, though. &#160;It will just result in more overhead for each page freed. &#160;Do you have any benchmarks showing that it helps? &#160;&lt;/p&gt;

&lt;p&gt;Also, I agree that hitting the LRU limit has a performance cost, but that&#8217;s expected. &#160;Freeing pages is not free... &#160;Your description of it getting worse with more memory makes me wonder if we&#8217;re walking the list in the wrong order, but I don&#8217;t see how that could be the case.&lt;/p&gt;

&lt;p&gt;I&#8217;d be interested in seeing basic perf traces of the application here. &#160;This is certainly a case that could be improved, but my experience with it suggests this is not the way to do that.&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|hzzw2f:</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>