<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:04:09 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-141] port lustre client page cache shrinker back to clio</title>
                <link>https://jira.whamcloud.com/browse/LU-141</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;This feature is lost when clio was implemented. We may need to port it back from 1.8.&lt;/p&gt;

&lt;p&gt;There will be a lot of changes for this since we need to deal with it under cl_page infrastructure, also it might be better to implement this in obdclass/ instead of llite as what 1.8 does.&lt;/p&gt;

&lt;p&gt;this is what we should do:&lt;br/&gt;
1. Implement generic cl_page LRU mechanism in obdclass/. This LRU list should not use spinlocks for smp scalability and be able to deal with async_page_max cap.&lt;br/&gt;
2. add a shrinker for cl_page in llite - not sure if we still need this.&lt;/p&gt;</description>
                <environment></environment>
        <key id="10465">LU-141</key>
            <summary>port lustre client page cache shrinker back to clio</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="jay">Jinshan Xiong</reporter>
                        <labels>
                    </labels>
                <created>Thu, 17 Mar 2011 16:38:02 +0000</created>
                <updated>Thu, 13 Mar 2014 21:40:35 +0000</updated>
                            <resolved>Thu, 13 Mar 2014 21:40:35 +0000</resolved>
                                                    <fixVersion>Lustre 2.4.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                            <comments>
                            <comment id="11197" author="green" created="Thu, 17 Mar 2011 17:41:45 +0000"  >&lt;p&gt;Actually I wonder if we can just forego this completely and depend on the generic VFS fs cache tunables instead?&lt;/p&gt;</comment>
                            <comment id="11198" author="jay" created="Thu, 17 Mar 2011 17:55:12 +0000"  >&lt;p&gt;We may still need this for some special task - for example, as a customer mentioned at lustre-discuss@, the task just reads data once, and rarely uses it again.  In this case, max_cached_mb helps not pollute system memory cache too much&lt;/p&gt;</comment>
                            <comment id="11597" author="bryon" created="Wed, 30 Mar 2011 14:46:03 +0000"  >&lt;p&gt;Andreas, can you provide an opinion on whether we should forego this or implement per Jay&apos;s suggestion?&lt;/p&gt;</comment>
                            <comment id="11899" author="adilger" created="Fri, 1 Apr 2011 18:41:20 +0000"  >&lt;p&gt;While I think this is an important function, I don&apos;t think it is a 2.1 release blocker.&lt;/p&gt;

&lt;p&gt;There have been reports of out-of-memory on the client due to async journal commit, and the lack of a cache limit on the client in 2.x may make that problem worse.  However, until we have solid proof of memory problems on the client, I agree that normal Linux VM tunables can be used for this (e.g. /proc/sys/vm/dirty_ratio and friends, and posix_fadvise(POSIX_FADV_&lt;/p&gt;
{NOREUSE,DONTNEED}
&lt;p&gt;)).&lt;/p&gt;</comment>
                            <comment id="11905" author="jay" created="Fri, 1 Apr 2011 19:30:26 +0000"  >&lt;p&gt;Andreas, thanks for you advice. Let&apos;s hold this issue until it really needs fixing.&lt;/p&gt;</comment>
                            <comment id="22747" author="bryon" created="Wed, 9 Nov 2011 13:09:06 +0000"  >&lt;p&gt;Can anyone from CEA provide a test case that exhibits memory issues because this feature is not in 2.1? It would help justify the effort required to add this back in.&lt;/p&gt;</comment>
                            <comment id="22946" author="jc.lafoucriere@cea.fr" created="Sat, 12 Nov 2011 15:08:33 +0000"  >&lt;p&gt;Hello Andreas&lt;/p&gt;

&lt;p&gt;I am not totally aware of this issue, but we will look what we can do to &lt;br/&gt;
clarify our need (use case or reproducer)&lt;/p&gt;

&lt;p&gt;Bye&lt;/p&gt;

&lt;p&gt;JC&lt;/p&gt;
</comment>
                            <comment id="23451" author="thiell" created="Sun, 27 Nov 2011 18:05:16 +0000"  >&lt;p&gt;We have at CEA some special lustre client nodes (4 lustre filesystems ore more are mounted) and their role is to continuously copy files from one filesystem to another. Bandwidth drops rapidly after the first copies, and all transfer nodes become heavily loaded, taking their time doing memory reclaims in lustre (if I remember correctly). These nodes have quite a large amount of memory, from 24GB to 64GB depending on the cluster. And I think it is a problem particularly seen on large nodes as memory allocations in lustre are not NUMA aware.&lt;/p&gt;

&lt;p&gt;Also we didn&apos;t want to remove some physical memory as it is potentially used to run other filesystems tools (like robinhood and its large databases). That&apos;s why we would like to limit the max cached pages in lustre with max_cached_mb or by another way, but I didn&apos;t find anything convincing in Linux VM tunables (and this doesn&apos;t concern dirty pages, so I don&apos;t think dirty_ratio and friends could help in that case...). I would be happy to try some other ideas though.&lt;/p&gt;

&lt;p&gt;Our workaround for this issue is to use directio for file copy between lustre FS on these nodes. The global performance is much better, but individual transfers are not very fast and this is a problem when an user is eagerly waiting for a particular file.&lt;/p&gt;</comment>
                            <comment id="79289" author="adilger" created="Thu, 13 Mar 2014 21:40:35 +0000"  >&lt;p&gt;The per-filesystem max_cached_mb limit was added in &lt;a href=&quot;http://review.whamcloud.com/2514&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/2514&lt;/a&gt; for 2.4.0 via &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-744&quot; title=&quot;Single client&amp;#39;s performance degradation on 2.1&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-744&quot;&gt;&lt;del&gt;LU-744&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="12054">LU-744</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|hzw0vj:</customfieldvalue>

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