public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: Marc Singer <elf@buici.com>
Cc: riel@redhat.com, brettspamacct@fastclick.com, jgarzik@pobox.com,
	linux-kernel@vger.kernel.org
Subject: Re: ~500 megs cached yet 2.6.5 goes into swap hell
Date: Wed, 28 Apr 2004 21:33:59 -0700	[thread overview]
Message-ID: <20040428213359.77f9dfb5.akpm@osdl.org> (raw)
In-Reply-To: <20040429041302.GA26845@buici.com>

Marc Singer <elf@buici.com> wrote:
>
> It could work differently from that.  For example, if we had 500M
> total, we map 200M, then we do 400M of IO.  Perhaps we'd like to be
> able to say that a 400M page cache is too big.

Try it - you'll find that the system will leave all of your 200M of mapped
memory in place.  You'll be left with 300M of pagecache from that I/O
activity.  There may be a small amount of unmapping activity if the I/O is
a write, or if the system has a small highmem zone.  Maybe.

Beware that both ARM and NFS seem to be doing odd things, so try it on a
PC+disk first ;)

>  The problem isn't
> about reclaiming pagecache it's about the cost of swapping pages back
> in.  The page cache can tend to favor swapping mapped pages over
> reclaiming it's own pages that are less likely to be used.  Of course,
> it doesn't know that...which is the rub.

No, the system will only start to unmap pages if reclaim of unmapped
pagecache is getting into difficulty.  The threshold of "getting into
difficulty" is controlled by /proc/sys/vm/swappiness.

> The requirement is that we'd like to see pages aged more gracefully.
> A mapped page that is used continuously for ten minutes and then left
> to idle for 10 minutes is more valuable than an IO page that was read
> once and then not used for ten minutes.  As the mapped page ages, it's
> value decays.

yes, remembering aging info over that period of time is hard.  We only have
six levels of aging: referenced+active, unreferenced+active,
referenced+inactive,unreferenced+inactive, plus position-on-lru*2.

> I've read the source for where swappiness comes into play.  Yet I
> cannot make a statement about what it means.  Can you?

It controls the level of page reclaim distress at which we decide to start
reclaiming mapped pages.

We prefer to reclaim pagecache, but we have to start swapping at *some*
level of reclaim failure.  swappiness sets that level, in rather vague
units.

It might make sense to recast swappiness in terms of
pages_reclaimed/pages_scanned, which is the real metric of page reclaim
distress.  But that would only affect the meaning of the actual number - it
wouldn't change the tunable's effect on the system.


  reply	other threads:[~2004-04-29  4:34 UTC|newest]

Thread overview: 128+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-28 21:27 ~500 megs cached yet 2.6.5 goes into swap hell Brett E.
2004-04-29  0:01 ` Andrew Morton
2004-04-29  0:10   ` Jeff Garzik
2004-04-29  0:21     ` Nick Piggin
2004-04-29  0:50       ` Wakko Warner
2004-04-29  0:53         ` Jeff Garzik
2004-04-29  0:54         ` Nick Piggin
2004-04-29  1:51           ` Tim Connors
2004-04-29 21:45         ` Denis Vlasenko
2004-04-29  0:58       ` Marc Singer
2004-04-29  3:48         ` Nick Piggin
2004-04-29  4:20           ` Marc Singer
2004-04-29  4:26             ` Nick Piggin
2004-04-29 14:49               ` Marc Singer
2004-04-30  4:08                 ` Nick Piggin
2004-04-30 22:31                   ` Marc Singer
2004-04-29  6:38             ` William Lee Irwin III
2004-04-29  7:36             ` Russell King
2004-04-29 10:44               ` Nick Piggin
2004-04-29 11:04                 ` Russell King
2004-04-29 14:52                   ` Marc Singer
2004-04-29 20:01       ` Horst von Brand
2004-04-29 20:18         ` Martin J. Bligh
2004-04-29 20:33         ` David B. Stevens
2004-04-29 22:42           ` Steve Youngs
2004-04-29 20:36         ` Paul Jackson
2004-04-29 21:19           ` Andrew Morton
2004-04-29 21:34             ` Paul Jackson
2004-04-29 21:57               ` Andrew Morton
2004-04-29 22:18                 ` Paul Jackson
2004-04-30  0:04                 ` Andy Isaacson
2004-04-30  0:32                   ` Andrew Morton
2004-04-30  0:54                     ` Paul Jackson
2004-04-30  5:38                       ` Andy Isaacson
2004-04-30  6:00                         ` Nick Piggin
2004-04-30  7:52                     ` Jeff Garzik
2004-04-30  8:02                       ` Andrew Morton
2004-04-30  8:09                         ` Jeff Garzik
2004-05-06 13:08             ` Pavel Machek
2004-05-07 15:53               ` Hugh Dickins
2004-05-07 16:57                 ` Pavel Machek
2004-05-07 17:30                   ` Timothy Miller
2004-05-07 17:43                     ` Hugh Dickins
2004-05-07 17:48                     ` Mark Frazer
2004-05-12 17:52                   ` Rob Landley
2004-05-17 20:16                     ` Hugh Dickins
2004-04-29 21:38           ` Timothy Miller
2004-04-29 21:47             ` Paul Jackson
2004-04-29 22:18               ` Timothy Miller
2004-04-29 22:46                 ` Paul Jackson
2004-04-29 23:08                   ` Timothy Miller
2004-04-30 12:31                     ` Bart Samwel
2004-04-30 15:35                       ` Clay Haapala
2004-04-30 15:44                         ` Bart Samwel
2004-04-30 22:11                       ` Paul Jackson
2004-04-30  3:37                 ` Tim Connors
2004-04-30  5:15         ` Nick Piggin
2004-04-30  6:20         ` Tim Connors
2004-04-30  6:34           ` Nick Piggin
2004-04-30  7:05             ` Tim Connors
2004-04-30  7:15               ` Nick Piggin
2004-04-30  9:18               ` Re[2]: " vda
2004-04-30  9:33                 ` Arjan van de Ven
2004-04-30 11:33                   ` Denis Vlasenko
2004-04-30 16:19                   ` Timothy Miller
2004-04-29  0:49     ` Brett E.
2004-04-29  1:00       ` Andrew Morton
2004-04-29  1:24         ` Jeff Garzik
2004-04-29  1:40           ` Andrew Morton
2004-04-29  1:47             ` Rik van Riel
2004-04-29 18:14               ` Adam Kropelin
2004-04-30  3:17                 ` Tim Connors
2004-04-29  2:19             ` Tim Connors
2004-04-29 16:24             ` Martin J. Bligh
2004-04-29 16:36               ` Chris Friesen
2004-04-29 16:56                 ` Martin J. Bligh
2004-04-29  1:30         ` Paul Mackerras
2004-04-29  1:31           ` Paul Mackerras
2004-04-29  1:53           ` Andrew Morton
2004-04-29  2:40             ` Andrew Morton
2004-04-29  2:58               ` Paul Mackerras
2004-04-29  3:09                 ` Andrew Morton
2004-04-29  3:14                 ` William Lee Irwin III
2004-04-29  6:12                 ` Benjamin Herrenschmidt
2004-04-29  6:22                   ` Andrew Morton
2004-04-29  6:25                     ` Benjamin Herrenschmidt
2004-04-29  6:31                   ` William Lee Irwin III
2004-04-29 16:50               ` Martin J. Bligh
2004-04-29  3:57             ` Nick Piggin
2004-04-29 14:29               ` Rik van Riel
2004-04-30  3:00                 ` Nick Piggin
2004-04-30 12:50                   ` Rik van Riel
2004-04-30 13:07                     ` Nick Piggin
2004-04-30 13:18                     ` Nikita Danilov
2004-04-30 13:39                       ` Nick Piggin
2004-04-29  1:46         ` Rik van Riel
2004-04-29  1:57           ` Andrew Morton
2004-04-29  2:29             ` Marc Singer
2004-04-29  2:35               ` Andrew Morton
2004-04-29  3:10                 ` Marc Singer
2004-04-29  3:19                   ` Andrew Morton
2004-04-29  4:13                     ` Marc Singer
2004-04-29  4:33                       ` Andrew Morton [this message]
2004-04-29 14:45                         ` Marc Singer
2004-04-29 16:51                     ` Andy Isaacson
2004-04-29 20:42                       ` Andrew Morton
2004-04-29 22:27                         ` Andy Isaacson
2004-04-29 23:19                           ` Andrew Morton
2004-04-30  0:14                       ` Lincoln Dale
2004-04-29  8:02                   ` Wichert Akkerman
2004-04-29 14:25                     ` Marcelo Tosatti
2004-04-29 14:27                       ` Wichert Akkerman
2004-04-29  2:41             ` Rik van Riel
2004-04-29  2:43               ` Andrew Morton
2004-04-29  1:41       ` Tim Connors
2004-04-29  9:43       ` Helge Hafting
2004-04-29 14:48         ` Marc Singer
2004-04-29  0:44   ` Brett E.
2004-04-29  1:13     ` Andrew Morton
2004-04-29  1:29       ` Brett E.
2004-04-29 18:05         ` Brett E.
2004-04-29 18:32           ` William Lee Irwin III
2004-04-29 20:47             ` Brett E.
2004-04-29  0:04 ` Brett E.
2004-04-29  0:13   ` Jeff Garzik
2004-04-29  0:43     ` Nick Piggin
2004-04-29 13:51   ` Horst von Brand
2004-04-29 18:32     ` Brett E.

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=20040428213359.77f9dfb5.akpm@osdl.org \
    --to=akpm@osdl.org \
    --cc=brettspamacct@fastclick.com \
    --cc=elf@buici.com \
    --cc=jgarzik@pobox.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=riel@redhat.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