Swapped memory limited to about 500MB for a process ?

Mickaël Canévet canevet at embl.fr
Fri Sep 14 07:08:24 UTC 2012


On Fri, 2012-09-14 at 08:36 +0530, Sriram Gorti wrote:
> On Wed, Sep 12, 2012 at 7:33 PM, Mickaël Canévet <canevet at embl.fr> wrote:
> > On Wed, 2012-09-12 at 10:03 -0400, Lowell Gilbert wrote:
> >> Mickaël Canévet <canevet at embl.fr> writes:
> >>
> >> > On Tue, 2012-09-11 at 13:05 -0400, Lowell Gilbert wrote:
> >> >> Mickaël Canévet <canevet at embl.fr> writes:
> >> >>
> >> >> > I was impacted by a memory leak that has been fixed by this patch:
> >> >> > http://people.freebsd.org/~rmacklem/namei-leak.patch
> >> >> >
> >> >> > What I noticed when the server was paging is that it seems that only
> >> >> > about 500MB of my 4GB swap partition was used before crashing. I was
> >> >> > wondering why it didn't take the whole 4GB up to the crash of the server
> >> >> > because of lake of memory (that would let me more time to react).
> >> >> >
> >> >> > Is there such king of setting that prevent a process to put more then
> >> >> > 500MB of data in swap ?
> >> >>
> >> >> limits(1)?
> >> >>
> >> > Thank you for your answer.
> >> >
> >> > Here is the result of limits:
> >> >
> >> > limits
> >> > Resource limits (current):
> >> >   cputime              infinity secs
> >> >   filesize             infinity kB
> >> >   datasize             33554432 kB
> >> >   stacksize              524288 kB
> >> >   coredumpsize         infinity kB
> >> >   memoryuse            infinity kB
> >> >   memorylocked         infinity kB
> >> >   maxprocesses             5547
> >> >   openfiles               11095
> >> >   sbsize               infinity bytes
> >> >   vmemoryuse           infinity kB
> >> >   pseudo-terminals     infinity
> >> >   swapuse              infinity kB
> >> >
> >> > swapuse is set to unlimited, but stacksize is set to 512MB.
> >> > Is it the stacksize setting that prevent my kernel to swap more then
> >> > 512MB ?
> >>
> >> No, I don't think so. datasize was the parameter I was most
> >> suspecting; and it assumes that a particular process was causing the
> >> crash (which is unlikely; the OS is supposed to protect you against
> >> it).
> >>
> >> Most likely, the crash was not directly caused by a shortage of virtual
> >> memory. You would have to diagnose through crash dumps, but it could be
> >> that some more specific resource was exhausted. Or perhaps the memory
> >> leak left dangling references in a vnode.
> >>
> 
> We also had a some what similar experience - swap partition was not
> being fully utilized (but no NFS in use). Found that the size of
> SWAPMETA limits the total usable swap space. This is more likely with
> a custom config and tweaked limits.
> 
> vmstat -z | egrep "LIMIT|SWAPMETA"
> 
> --- sriram
> 
> 
> >
> > OK,
> >
> > Thanks a lot for your explanations.
> >
> > Cheers,
> > Mickaël
> 

I have this:

# vmstat -z | egrep "LIMIT|SWAPMETA"
ITEM                   SIZE  LIMIT     USED     FREE      REQ FAIL SLEEP
SWAPMETA:               288, 116519,    1610,    6437,  559839,   0,   0

If this number (116519) correspond to the number of memory pages and as
I have 4k page size (pagesize command reports 4096), SWAPMETA is limited
to 466076 kB which is pretty close to the "about" 500MB I can see on my
monitoring graphs.

If this is the explanation of what happens, how can I tune this ? Should
I use larger pages (superpages seems to be enable by default on
FreeBSD9-amd64) ? Is there a way to increase the limit of swapmeta ?

Thanks,
Mickaël
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-questions/attachments/20120914/910fe071/attachment.pgp


More information about the freebsd-questions mailing list