From: Andrea Arcangeli <andrea@suse.de>
To: Andrew Morton <akpm@osdl.org>
Cc: James Pearson <james-p@moving-picture.com>,
marcelo.tosatti@cyclades.com, linux-kernel@vger.kernel.org
Subject: Re: Reducing inode cache usage on 2.4?
Date: Mon, 20 Dec 2004 20:20:46 +0100 [thread overview]
Message-ID: <20041220192046.GM4630@dualathlon.random> (raw)
In-Reply-To: <20041217172104.00da3517.akpm@osdl.org>
On Fri, Dec 17, 2004 at 05:21:04PM -0800, Andrew Morton wrote:
> James Pearson <james-p@moving-picture.com> wrote:
> >
> > It seems the inode cache has priority over cached file data.
>
> It does. If the machine is full of unmapped clean pagecache pages the
> kernel won't even try to reclaim inodes. This should help a bit:
>
> --- 24/mm/vmscan.c~a 2004-12-17 17:18:31.660254712 -0800
> +++ 24-akpm/mm/vmscan.c 2004-12-17 17:18:41.821709936 -0800
> @@ -659,13 +659,13 @@ int fastcall try_to_free_pages_zone(zone
>
> do {
> nr_pages = shrink_caches(classzone, gfp_mask, nr_pages, &failed_swapout);
> - if (nr_pages <= 0)
> - return 1;
> shrink_dcache_memory(vm_vfs_scan_ratio, gfp_mask);
> shrink_icache_memory(vm_vfs_scan_ratio, gfp_mask);
> #ifdef CONFIG_QUOTA
> shrink_dqcache_memory(vm_vfs_scan_ratio, gfp_mask);
> #endif
> + if (nr_pages <= 0)
> + return 1;
> if (!failed_swapout)
> failed_swapout = !swap_out(classzone);
> } while (--tries);
I'm worried this is too aggressive by default and it may hurt stuff. The
real bug is that we don't do anything when too many collisions happens
in the hashtables. That is the thing to work on. We should free
colliding entries in the background after a 'touch' timeout. That should
work pretty well to age the dcache proprerly too. But the above will
just shrink everything all the time and it's going to break stuff.
For 2.6 we can talk about the background shrink based on timeout.
My only suggestion for 2.4 is to try with vm_cache_scan_ratio = 20 or
higher (or alternatively vm_mapped_ratio = 50 or = 20). There's a
reason why everything is tunable by sysctl.
I don't think the vm_lru_balance_ratio is the one he's interested
about. vm_lru_balance_ratio controls how much work is being done at
every dcache/icache shrinking.
His real objective is to invoke the dcache/icache shrinking more
frequently, how much work is being done at each pass is a secondary
issue. If we don't invoke it, nothing will be shrunk, no matter what is
the value of vm_lru_balance_ratio.
Hope this helps funding an optimal tuning for the workload.
next prev parent reply other threads:[~2004-12-20 19:22 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-17 17:26 Reducing inode cache usage on 2.4? James Pearson
2004-12-17 15:12 ` Marcelo Tosatti
2004-12-17 21:52 ` Willy Tarreau
2004-12-18 0:32 ` James Pearson
2004-12-18 1:21 ` Andrew Morton
2004-12-18 11:02 ` Marcelo Tosatti
2004-12-20 13:47 ` James Pearson
2004-12-20 12:46 ` Marcelo Tosatti
2004-12-20 15:10 ` Andrea Arcangeli
2004-12-20 15:06 ` Marcelo Tosatti
2004-12-20 17:54 ` Andrea Arcangeli
2004-12-20 15:43 ` Marcelo Tosatti
2004-12-20 19:20 ` Andrea Arcangeli [this message]
2004-12-21 11:33 ` James Pearson
2004-12-21 13:22 ` Andrea Arcangeli
2004-12-21 13:59 ` James Pearson
2004-12-21 14:39 ` Andrea Arcangeli
2004-12-18 15:02 ` Marcelo Tosatti
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=20041220192046.GM4630@dualathlon.random \
--to=andrea@suse.de \
--cc=akpm@osdl.org \
--cc=james-p@moving-picture.com \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo.tosatti@cyclades.com \
/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