mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@digeo.com>
To: dementiev@mpi-sb.mpg.de
Cc: linux-kernel@vger.kernel.org
Subject: Re: buffer leakage in kernel?
Date: Fri, 24 Jan 2003 13:02:08 -0800	[thread overview]
Message-ID: <20030124130208.52583b24.akpm@digeo.com> (raw)
In-Reply-To: <3E31364E.F3AFDCF0@mpi-sb.mpg.de>

Roman Dementiev <dementiev@mpi-sb.mpg.de> wrote:
>
> Hello everyone,
> 
> I've met with following problem (kernel 2.4.20-pre4 ):
> I write and read sequentially from/to 8 files each of 64 Gbytes (not a
> mistake, 64 Gbyte),
> each on different disk. The files are opened with flag O_DIRECT. I have
> 1 Gbyte RAM, no swap.
> While this scanning is running, number of "buffers" reported by ''free"
> and in /proc/meminfo
> is continuously increasing up to ~ 500 MB !!

You did not specify the filesystem type.  I shall assume ext2.

This buffer growth is expected - ext2 uses one 4k indirect block to describe
the disk location of 4M of file data.  Those indirect blocks are cached, and
appear as "buffers" in the memory accounting.

So after having read 500G of ext2 file with O_DIRECT, you would expect there
to be 500M of indirects in the block device pagecache.  (We shouldn't be
calling this "buffers" any more.  That is inaccurate, and confuses people
into thinking that Linux has a buffer cache).

> When the program exits
> normally or I break it, number
> of "buffers" does not decrease and even increases if I do operations on
> other files.

O_DIRECT operations, yes.  If you were to read one of these files without
O_DIRECT, you should see "Buffers" decreasing as they are reclaimed to make
way for the newly introduced file cache.

> This is not nice at all when I have another applications running
> with memory consumption > 500 MB: when my "scanner" approaches 50G
> border on
> each disk, I've got numerous  "Out of memory" murders :(. Even 'ssh' to
> this machine
> is killed :(
> 
> Could anyone explain why it happens? I suppose that it is a memory
> leakage in file system buffer management.

Sounds like a bug.

Are you reading these large files via a single application, or via one
process per file?

How large is the buffer into which the application is performing the O_DIRECT
read?

Please perform this test:

1: Wait until you have 500M "Buffers"
2: cat 64_gig_file > /dev/null
3: Now see how large "Buffers" is.  It should have reduced a lot.



  parent reply	other threads:[~2003-01-24 20:33 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-24 12:49 Roman Dementiev
2003-01-24 18:07 ` Andreas Dilger
2003-01-24 21:02 ` Andrew Morton [this message]
2003-01-27 16:57   ` Roman Dementiev
2003-01-27 20:51     ` Andrew Morton
2003-02-04 12:58       ` Roman Dementiev

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=20030124130208.52583b24.akpm@digeo.com \
    --to=akpm@digeo.com \
    --cc=dementiev@mpi-sb.mpg.de \
    --cc=linux-kernel@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

Powered by JetHome