From: Bob Peterson <rpeterso@redhat.com>
To: Keyur Govande <keyurgovande@gmail.com>
Cc: linux-fsdevel@vger.kernel.org
Subject: Re: Limit dentry cache entries
Date: Mon, 20 May 2013 08:20:49 -0400 (EDT) [thread overview]
Message-ID: <1557618867.17286216.1369052449281.JavaMail.root@redhat.com> (raw)
In-Reply-To: <CAJhmKHnyyC49QfPiLTN=XqUnUq2Nad1QOB3Yx-VfwzMgWLaFdw@mail.gmail.com>
----- Original Message -----
| Hello,
|
| We have a bunch of servers that create a lot of temp files, or check
| for the existence of non-existent files. Every such operation creates
| a dentry object and soon most of the free memory is consumed for
| 'negative' dentry entries. This behavior was observed on both CentOS
| kernel v.2.6.32-358 and Amazon Linux kernel v.3.4.43-4.
|
| There are also some processes running that occasionally allocate large
| chunks of memory, and when this happens the kernel clears out a bunch
| of stale dentry caches. This clearing takes some time. kswapd kicks
| in, and allocations and bzero() of 4GB that normally takes <1s, takes
| 20s or more.
|
| Because the memory needs are non-continuous but negative dentry
| generation is fairly continuous, vfs_cache_pressure doesn't help much.
|
| The thought I had was to have a sysctl that limits the number of
| dentries per super-block (sb-max-dentry). Everytime a new dentry is
| allocated in d_alloc(), check if dentry_stat.nr_dentry exceeds (number
| of super blocks * sb-max-dentry). If yes, queue up an asynchronous
| workqueue call to prune_dcache(). Also have a separate sysctl to
| indicate by what percentage to reduce the dentry entries when this
| happens.
|
| Thanks for your input. If this sounds like a reasonable idea, I'll
| send out a patch.
|
| Cheers,
| Keyur.
Hi Keyur,
I like the idea. I've had people bring up the same issue, relating
to GFS2. This is especially true for doing du and similar ops on a
very large file system. This wasn't on GFS2, was it?
Regards,
Bob Peterson
Red Hat File Systems
next prev parent reply other threads:[~2013-05-20 12:20 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-20 3:50 Limit dentry cache entries Keyur Govande
2013-05-20 12:20 ` Bob Peterson [this message]
2013-05-25 3:03 ` Keyur Govande
2013-05-20 22:53 ` Dave Chinner
2013-05-25 3:12 ` Keyur Govande
2013-05-26 23:23 ` Dave Chinner
2013-05-28 6:12 ` Keyur Govande
2013-05-28 6:24 ` Keyur Govande
2013-05-28 10:49 ` Dave Chinner
2013-05-28 16:42 ` Keyur Govande
2013-05-28 17:14 ` Keyur Govande
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1557618867.17286216.1369052449281.JavaMail.root@redhat.com \
--to=rpeterso@redhat.com \
--cc=keyurgovande@gmail.com \
--cc=linux-fsdevel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).