Re: Swapped memory limited to about 500MB for a process ?
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 ?
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 ?
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 ?
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 ?
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 ?
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 ?
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