Maximum memory allocation per process

Jeremy Chadwick koitsu at FreeBSD.org
Thu May 22 13:38:19 UTC 2008


On Thu, May 22, 2008 at 11:00:37PM +1000, Adrian Thearle wrote:
> I have a problem with a perl script running out of memory. From my googling 
> I have found that perl itself does not seem to impose any memory limits, 
> and I have check ulimit and login.conf for any userclass limitations but 
> found nothing that seems to be limiting my memory.
>
> I have 128MBytes of RAM and a 2Gbyte swap partition.
>
> I am currently running
> FreeBSD albert 6.2-STABLE FreeBSD 6.2-STABLE #11: Sun Sep  2 00:45:05 EST 
> 2007
> which I guess isn't exactly the latest... but the same thing happens on my 
> REL7.0 Box
>
> The process (imapsync in this case) runs out of ram at pretty much 512MB. I 
> read on a forum that BSD 6 imposes such a limit of 512MB per process, but i 
> have found no where to tune this, or even see what it is.

You need to modify some kernel settings via /boot/loader.conf and
reboot.  Here's what we use on our production RELENG_6 and RELENG_7
boxes:

# Increase maximum allocatable memory on a process to 2GB.
# (We don't choose 3GB (our max RAM) since that would
# exhaust all memory, and result in a kernel panic.)
# Set default memory size as 768MB.
# Maximum stack size is 256MB.
#
kern.maxdsiz="2048M"
kern.dfldsiz="768M"
kern.maxssiz="256MB"

> I have also read that there are two sysctl namely, kern.maxdsiz and 
> kern.maxssiz, that can tune memory allocation but what happend to them in 
> Freebsd 6.

These are not sysctls, they are kernel settings.  They exist on both
RELENG_6 and RELENG_7.

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |



More information about the freebsd-hackers mailing list