linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
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>

  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