Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Jul 2005 01:34:46 -0700
From:      Julian Elischer <julian@elischer.org>
To:        Pawel Jakub Dawidek <pjd@FreeBSD.org>
Cc:        FreeBSD Current <freebsd-current@FreeBSD.org>
Subject:   Re:  VFS/VM over-runs. Was: Apparent strange disk behaviour in 6.0
Message-ID:  <42E898A6.6010803@elischer.org>
In-Reply-To: <20050728082844.GW46538@darkness.comp.waw.pl>
References:  <42E88135.30603@elischer.org> <42E88F2B.5000108@elischer.org> <20050728082844.GW46538@darkness.comp.waw.pl>

next in thread | previous in thread | raw e-mail | index | archive | help


Pawel Jakub Dawidek wrote:

>On Thu, Jul 28, 2005 at 12:54:19AM -0700, Julian Elischer wrote:
>+> it APPEARS that teh system is swapping out running programs in order to 
>+> store more write data!
>+> 
>+> experiment:
>+> boot to single user mode.
>+> type:
>+> mount {big partition}
>+> dd if=/dev/zero bs=128K of=/$bigpartition}/bigfile count=1000000
>+> 
>+> notice that after a short while your dd is killed because the system is 
>+> out of swapspace.
>+> (it doesn't have any)
>+> Why the F*ck does it need swapspace.? there are exactly 2 proceses 
>+> running in userspace
>+> and one of them s in wait4(). dd shows a resident size of about 170KB
>+> leaving about a GIGABYTE of unused RAM.
>+> 
>+> The system should make dd wait rather than trying to swap its pages out..
>+> 
>+> 
>+> if you then do
>+> swapon (your swap device)
>+> and repeat teh command in the background,
>+> vmstat 1 will show you pages being faulted in and out...
>+> no WONDER IO goes to hell in a handbasket..
>+> 
>+> Outgoing IO should never be able to force running programs out!
>+> It should start re-using old pages from the same file!
>+> 
>+> 4.11 gives a consinstent 65MB/sec with this array, for as long as I run it..
>+> 6.0 gives me 65MB for 15 seconds and then it drops to 20MB/sec and then 
>+> 10MB/sec
>+> and the swap disk bursts into life.
>+> 
>+> the array goes from all the lights solidly on, to bursts of activity 
>+> with large gaps in between them.
>
>It looks I observed the same behaviour!
>
>I was testing GELI GEOM class and I was getting ENOMEM errors from malloc(9).
>Then, I was sure I've a memory leak, but this was only 'vmstat -m' issue so
>there was no memory leak and I shouldn't get ENOMEM in the first place while
>copying /usr/src/sys directory.
>
>I'm also able to reproduce your dd(1) test easly.
>
>Not sure when it was introduced...
>  
>

I wonder if there is some tunable that can be changed? or whether it's
just a bug..

I think that a write that finds no buffer space should first free old 
unused
buffers, and if there aren't any it should just wait.  Where's alan when 
you need him :-)






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42E898A6.6010803>