Re: Swapped memory limited to about 500MB for a process ?

2012-09-14 Thread Mickaël Canévet
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 cane...@embl.fr wrote:
  On Wed, 2012-09-12 at 10:03 -0400, Lowell Gilbert wrote:
  Mickaël Canévet cane...@embl.fr writes:
 
   On Tue, 2012-09-11 at 13:05 -0400, Lowell Gilbert wrote:
   Mickaël Canévet cane...@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
 memoryuseinfinity 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


signature.asc
Description: This is a digitally signed message part


Re: Swapped memory limited to about 500MB for a process ?

2012-09-13 Thread Sriram Gorti
On Wed, Sep 12, 2012 at 7:33 PM, Mickaël Canévet cane...@embl.fr wrote:
 On Wed, 2012-09-12 at 10:03 -0400, Lowell Gilbert wrote:
 Mickaël Canévet cane...@embl.fr writes:

  On Tue, 2012-09-11 at 13:05 -0400, Lowell Gilbert wrote:
  Mickaël Canévet cane...@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
memoryuseinfinity 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
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: Swapped memory limited to about 500MB for a process ?

2012-09-12 Thread Mickaël Canévet
On Tue, 2012-09-11 at 13:05 -0400, Lowell Gilbert wrote:
 Mickaël Canévet cane...@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
  memoryuseinfinity 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 ?
If so, are there any side effect of raising the stack (except exhaust
the swap space on the system) to give me more time to react by
restarting NFS or export/import Zpools for example in the case of NAMEI
memory leak before the kernel crashes ?

Thanks,
Mickaël


signature.asc
Description: This is a digitally signed message part


Re: Swapped memory limited to about 500MB for a process ?

2012-09-12 Thread Lowell Gilbert
Mickaël Canévet cane...@embl.fr writes:

 On Tue, 2012-09-11 at 13:05 -0400, Lowell Gilbert wrote:
 Mickaël Canévet cane...@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
   memoryuseinfinity 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.
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: Swapped memory limited to about 500MB for a process ?

2012-09-12 Thread Lowell Gilbert
Mickaël Canévet cane...@embl.fr writes:

 On Tue, 2012-09-11 at 13:05 -0400, Lowell Gilbert wrote:
 Mickaël Canévet cane...@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
   memoryuseinfinity 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.
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Re: Swapped memory limited to about 500MB for a process ?

2012-09-12 Thread Mickaël Canévet
On Wed, 2012-09-12 at 10:03 -0400, Lowell Gilbert wrote:
 Mickaël Canévet cane...@embl.fr writes:
 
  On Tue, 2012-09-11 at 13:05 -0400, Lowell Gilbert wrote:
  Mickaël Canévet cane...@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
memoryuseinfinity 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.
 

OK,

Thanks a lot for your explanations.

Cheers,
Mickaël


signature.asc
Description: This is a digitally signed message part


Re: Swapped memory limited to about 500MB for a process ?

2012-09-11 Thread Lowell Gilbert
Mickaël Canévet cane...@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)?
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


Swapped memory limited to about 500MB for a process ?

2012-09-10 Thread Mickaël Canévet
Hello,

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 ?

Thanks in advance for your answers,
Mickaël Canévet


signature.asc
Description: This is a digitally signed message part