From: Brian Ristuccia <bristuccia@starentnetworks.com>
To: linux-kernel@vger.kernel.org, djohnson@starentnetworks.com
Subject: repeated failed open()'s results in lots of used memory [Was: [Fwd: memory consumption]]
Date: Wed, 01 Aug 2001 16:58:27 -0400 [thread overview]
Message-ID: <3B686D73.6040602@starentnetworks.com> (raw)
We've been experiencing a problem where an errant process would run in a
tight loop trying to create files in a directory where it did not have
access. While this errant process was running, we'd notice all of the
available memory shift from buffers/cache (or free) to used and stay
that way while the process was running. vmstat also reports heavy in/out
traffic on the swap, but swap consumption does not grow past a few dozen
megabytes. The memory used by the process itself does not grow.
Note that we increase the default values for certain FS parameters:
echo '16384' >/proc/sys/fs/super-max
echo '32768' >/proc/sys/fs/file-max
echo '65535' > /proc/sys/fs/inode-max
We've created the following test program, which excercises the problem
on both 2.2.19 and 2.4.7. All of the machines have at least 512mb of
memory. I'd appreciate any feedback about reproducing the problem and
potential causes/fixes.
Thanks.
-------- Original Message --------
Subject: memory consumption
Date: Wed, 1 Aug 2001 16:33:18 -0400 (EDT)
From: Dave Johnson <djohnson@starentnetworks.com>
Reply-To: djohnson@starentnetworks.com
To: bristucc@sw.starentnetworks.com
$ mkdir testdir
$ chmod a-w testdir
$ ./open_test testdir/test
strace shows:
open("testdir/test.10001051", O_WRONLY|O_CREAT|O_EXCL, 0666) = -1 EACCES
(Permission denied)
open("testdir/test.10001052", O_WRONLY|O_CREAT|O_EXCL, 0666) = -1 EACCES
(Permission denied)
open("testdir/test.10001053", O_WRONLY|O_CREAT|O_EXCL, 0666) = -1 EACCES
(Permission denied)
open("testdir/test.10001054", O_WRONLY|O_CREAT|O_EXCL, 0666) = -1 EACCES
(Permission denied)
memory starts getting used until the system begins to swap like crazy....
interestingly.. the filename needs to change, and it wont happen for a
while if you start with 0.
Happens with both 2.4.7 and 2.2.19
-----
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main (int argc, char *argv[])
{
int i;
int fd;
char name[100];
if (argc != 2)
return 1;
for (i=10000000; i>=0; i++)
{
snprintf(name,99,"%s.%d",argv[1],i);
fd = open(name, O_WRONLY|O_CREAT|O_EXCL, 0666);
if (fd >= 0) close(fd);
}
return 0;
}
--------
--
David Johnson Starent Networks, Corp.
978-851-1173 30 International Place
djohnson@starentnetworks.com Tewksbury, MA 01876
next reply other threads:[~2001-08-01 20:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-01 20:58 Brian Ristuccia [this message]
2001-08-01 22:04 ` repeated failed open()'s results in lots of used memory [Was: [Fwd: memory consumption]] Andreas Dilger
2001-08-01 22:36 ` Brian Ristuccia
2001-08-01 22:53 ` Andreas Dilger
2001-08-01 23:57 ` Linus Torvalds
2001-08-01 22:54 ` Linus Torvalds
2001-08-01 23:08 ` Alexander Viro
2001-08-01 23:14 ` Linus Torvalds
2001-08-02 1:23 ` Alexander Viro
2001-08-02 4:42 ` Rik van Riel
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=3B686D73.6040602@starentnetworks.com \
--to=bristuccia@starentnetworks.com \
--cc=djohnson@starentnetworks.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.