From: Cheng Rk <crquan@ymail.com>
To: Michal Hocko <mhocko@suse.cz>
Cc: Konstantin Khlebnikov <koct9i@gmail.com>,
"linux-mm@kvack.org" <linux-mm@kvack.org>
Subject: Re: How to controll Buffers to be dilligently reclaimed?
Date: Wed, 18 Feb 2015 19:44:06 +0000 (UTC) [thread overview]
Message-ID: <80963126.624722.1424288646764.JavaMail.yahoo@mail.yahoo.com> (raw)
In-Reply-To: <20150218142322.GD4680@dhcp22.suse.cz>
On Wednesday, February 18, 2015 6:23 AM, Michal Hocko <mhocko@suse.cz> wrote:
On Fri 13-02-15 09:52:16, Cheng Rk wrote:
> As per Documentation/sysctl/vm.txt the knob doesn't affect the page
> cache reclaim but rather inode vs. dentry reclaim.
So do you think is it worth to work on something to give pressure similar
to vm.vfs_cache_pressure to vfs inode & dentry cache?
I am looking for an effect to let the kernel more aggressively reclaim
memory from Buffers,
By reading fs/super.c:prune_super I've also realized taht, which is the
only place referening sysctl_vfs_cache_pressure,
that block_devices' inode are in "bdev" mount, its super_block just
have nr_cached_objects as NULL,
s_nr_dentry_unused and s_nr_inodes_unused both 0, get total_objects to be
reclaimed is 0;
So is why sysctl_vfs_cache_pressure doesn't give pressure to Buffers,
if (sb->s_op && sb->s_op->nr_cached_objects)
fs_objects = sb->s_op->nr_cached_objects(sb);
total_objects = sb->s_nr_dentry_unused +
sb->s_nr_inodes_unused + fs_objects;
total_objects = (total_objects / 100) * sysctl_vfs_cache_pressure;
drop_super(sb);
In crash, I got to know this block_device (253:2, or /dev/dm-2)has 10536805 pages mapped, that is the 40GB memory in Buffers, I wonder is there a sysctl can controll this to be reclaimed earlier?
crash> block_device.bd_dev,bd_inode -x ffff880619c78000
bd_dev = 0xfd00002
bd_inode = 0xffff880619c780f0
crash> inode.i_mapping 0xffff880619c780f0
i_mapping = 0xffff880619c78240
crash> address_space.nrpages 0xffff880619c78240
nrpages = 10536805
>> I have some oom-killer msgs but were with older kernels, after set>> vm.overcommit_memory=2, it simply returns -ENOMEM, unable to spawn any
>> new container, why doesn't it even try to reclaim some memory from
>> those 40GB Buffers,> overcommit_memory controls behavior of the _virtual_ memory
> reservations. OVERCOMMIT_NEVER (2) means that even virtual memory cannot
> be overcommit outside of the configured value (RAM + swap basically -
> see Documentation/vm/overcommit-accounting for more information). So
> your application most probably consumes a lot of virtual memory (mmaps
> etc.) and that is why it gets ENOMEM.
I have read that Doc as well, will post again when I get a more concrete example
> OOM report would tell us what was the memory state at the time when you
> were short of memory and why the cache (buffers in your case) were not
> reclaimed properly.
Thanks,
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2015-02-18 19:46 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-13 0:52 Cheng Rk
2015-02-13 7:34 ` Konstantin Khlebnikov
2015-02-13 9:52 ` Cheng Rk
2015-02-13 18:07 ` Cheng Rk
2015-02-18 14:23 ` Michal Hocko
2015-02-18 19:44 ` Cheng Rk [this message]
2015-02-19 9:46 ` Michal Hocko
2015-02-20 20:33 ` Cheng Rk
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=80963126.624722.1424288646764.JavaMail.yahoo@mail.yahoo.com \
--to=crquan@ymail.com \
--cc=koct9i@gmail.com \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.cz \
/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